Gnus


Gnus, 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 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
  • incoming mail can be set to expire instead of just plain deletion
  • custom posting styles for each group
  • virtual groups
  • an advanced message scoring system
  • user-defined hooks for almost any method
  • many of the parameters can be specified individually for all of the groups
  • integration with the Insidious Big Brother Database 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:
Note that the composition of HTML email messages 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 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 the lead 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 – November 1995
  • * Gnus 5.1 rebranded 5.0.13 bundled with GNU Emacs 19.30/19.31
  • Gnus 5.2 – 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 – January 25, 1997
  • * Gnus 5.5, a rebranded 5.4 bundled with GNU Emacs 20.1 and also included in XEmacs 20.4
  • Gnus 5.6 – March 8, 1998
  • Gnus 5.8 – December 3, 1999
  • Gnus 5.10 – May 1, 2003
  • * Gnus 5.11, a rebranded 5.10 bundled with GNU Emacs 22.1. 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 - bundled with GNU Emacs 23.1
  • * The "No Gnus" development branch began January 4, 2004, and wrapped up in early 2012, with version 0.19.
  • Gnus 5.14, Ma 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 ". 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.