Gnus
# Gnus

Gnus (/ɡəˈnuːz, ˈɡnuːz/), or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.

Gnus blurs the distinction between news and e-mail, treating them both as "articles" that come from different sources. News articles are kept separate by group, and e-mail can be split into arbitrary groups, similar to folders in other mail readers. In addition, Gnus is able to use a number of web-based sources as inputs for its groups.

## Features

Some Gnus features:

* a range of backends that support any or all of:
   * reading email from the local filesystem, or over a network via IMAP or POP3
   * reading web pages via an RSS feed
   * treating a directory of files, either local or remote (via FTP or other method) as articles to browse
   * reading Usenet News, including the Gmane and Gwene mail-to-news archives of mailing lists
   * searching local or remote indices of emails or news items, e.g. via Notmuch
* simple or advanced mail splitting (automatic sorting of incoming mail to user-defined groups)
* incoming mail can be set to expire instead of just plain deletion
* custom posting styles (e.g. a different From address, .signature etc.) for each group
* virtual groups (e.g., directory on the computer can be read as a group)
* an advanced message scoring system
* user-defined hooks for almost any method (in emacs lisp)
* many of the parameters (e.g., expiration, posting style) can be specified individually for all of the groups
* integration with the Insidious Big Brother Database (BBDB) to handle contacts in a highly automated fashion.
* integration with other Emacs packages, such as the W3 web browser, LDAP lookup code, etc.

As part of Emacs, Gnus' features can be extended indefinitely through Emacs lisp.

To quote the Gnus Manual:

    "You know that Gnus gives you all the opportunity you'd ever want for shooting yourself in the foot. Some people call it flexibility. Gnus is also customizable to a great extent, which means that the user has a say on how Gnus behaves. Other newsreaders might unconditionally shoot you in your foot, but with Gnus, you have a choice!"

Note that the composition of HTML email messages (as users of more WYSIWYG editors may be used to) is not included by default; the lack of this "ability" is counted as a feature by Gnus' traditional user base.

## History

Gnus is a rewrite of GNUS by Masanobu Umeda, which ceased to be developed in 1992. In autumn 1994, Lars Magne Ingebrigtsen started the rewrite under the name (ding) which is a recursive acronym for ding is not Gnus, intending to produce a version for which the interface and configuration would work almost exactly the same, but the internals would be completely revamped and improved. The new version proved to be popular and has undergone constant expansion and enhancement. Ingebrigtsen is also programmer of eww.

### Versions

In general, users receive Gnus bundled with their copy of GNU Emacs and only need to worry about version numbers if they want to upgrade to newer versions themselves instead of receiving updates through Emacs or their operating system's packaging system.

The following versions have been released:

* Gnus 5 ((ding) Gnus) – November 1995
   * Gnus 5.1 rebranded 5.0.13 bundled with GNU Emacs 19.30/19.31
* Gnus 5.2 (September Gnus) – May 1996
   * Gnus 5.3, a rebranded 5.2.38 bundled with GNU Emacs 19.32 and all later versions of GNU Emacs 19.x
* Gnus 5.4 (Red Gnus) – January 25, 1997
   * Gnus 5.5, a rebranded 5.4 bundled with GNU Emacs 20.1 (September 17, 1997) and also included in XEmacs 20.4
* Gnus 5.6 (Quassia Gnus) – March 8, 1998
* Gnus 5.8 (Pterodactyl Gnus) – December 3, 1999
* Gnus 5.10 (Oort Gnus) – May 1, 2003
   * Gnus 5.11, a rebranded 5.10 bundled with GNU Emacs 22.1 (June 2, 2007). 5.10/5.11 development from the "Oort" development branch wrapped up around 2008. Some 5.11 versions, such as that packaged by Ubuntu Linux as "5.11+v0.10", are actually based on the later "No Gnus" development branch.
* Gnus 5.13 (No Gnus) - bundled with GNU Emacs 23.1 (July 29, 2009)
   * The "No Gnus" development branch began January 4, 2004, and wrapped up in early 2012, with version 0.19.
* Gnus 5.14, Ma Gnus (or 真 Gnus), is the current development version, v0.7 first released in May 2013.

The odd minor version numbers, like 5.3 and 5.5 are for the Gnus versions bundled with GNU Emacs. The even version numbers are the unbundled releases. So for example, Gnus 5.5 is similar to Gnus 5.4, but bundled with Emacs 20.1.

Development is done using "named versions", whose first letters run backwards in the alphabet; "No Gnus" v0.19 was released in early 2012, and development transitioned to "Ma Gnus". No named version ever reaches 1.0, instead when it is considered stable enough for general release, it sheds its name and gets packaged with as simply "Gnus <version number>". Entering the "V" command in the Groups buffer of a running copy of Gnus will usually cause it to divulge a version number, but there is no easy way for an end user to know if, for example, "No Gnus 0.9" is older or newer than "Gnus 5.10.8".

After being developed separately for 22 years, the developer of Gnus announced that further development would take place inside Gnu Emacs' git tree. A side effect of this change is that support for XEmacs and older versions of Gnu Emacs will be dropped.

