Skip to content
go-while edited this page Oct 22, 2026 · 8 revisions

NewsCache

NewsCache is a caching server for Usenet news (NNTP). To newsreaders it looks like an ordinary news server; to the upstream news server it looks like a newsreader. It stores only what at least one client has asked for: when a client requests an article, NewsCache answers from its spool if it can, and otherwise fetches the article from the upstream server, stores it and passes it on.

Typical uses:

  • A cache in front of a news server, to take load off it.
  • A small "leaf node" that shows clients a full feed but stores only the groups and articles people actually read.
  • One server for several upstreams: each newsgroup can be read from, and posted to, a different upstream server; clients configure just one.
  • Offline reading, with groups prefetched by updatenews.

NewsCache is free software under the GNU General Public License, version 2 or later.

Releases

The current release is 1.3.21 (2026-10-20). Releases, with tarballs and checksums: https://github.com/go-while/NewsCache/releases.

The next release, 1.3.22, is in preparation on main. The main changes (the full list is in the Unreleased section of NEWS):

  • Large groups: NewsCache fetches overview data only for the article numbers a client asks for, in steps of 10000, instead of the whole group. Binary groups with numbers above 6×10^10 work; article numbers are 64-bit everywhere. See Caching and Large Groups.
  • Articles by message-ID from the spool with the new option History on (off by default).
  • New commands: HDR, LIST HEADERS, XPAT, XHDR <message-id>, LISTGROUP with a range; CAPABILITIES now shows what the client may actually do. See NNTP Commands.
  • Security fixes: read rights were not enforced for LISTGROUP and for message-ID requests; several stack buffer overflows; upstream passwords are no longer printed by newscache -p.
  • Robustness: damaged spool files are moved aside and rebuilt instead of crashing NewsCache.
  • New options: AuthFailureDelay, History; ListenTo DEFAULT now listens on IPv6 and IPv4.
  • Build: configure.in is now configure.ac, and the build runs without autotools warnings.

Pages

Page What it covers
Installation Building from a tarball or git, Debian/Ubuntu package, Fedora, container image, systemd and inetd
Configuration A minimal config, the global options, NewsServerList
Access and Authentication AccessList, rights, logins (auth file, PAM, unix)
Upstream Servers and TLS Several upstream servers, group patterns, TLS and certificates
Caching and Large Groups How the cache works, large groups, the message-ID history, cleaning the spool, prefetching
NNTP Commands The commands NewsCache answers, and how
Troubleshooting Logs, checking the config, common problems, reporting bugs
Development Tests, CI, branches, how changes and releases are made

The full reference is in the manual pages (newscache.conf(5), newscache(8), updatenews(8), newscacheclean(8)) and the Texinfo manual doc/NewsCache.texi (installed as info NewsCache). The annotated sample configuration is etc/newscache.conf-dist.

History

Years Who What
1995–2001 Thomas Gschwind, TU Wien Idea and prototype as a master's thesis; NewsCache 0.99.x
2000–2008 Herbert Straub 1.1.x and 1.2rc6 (2004): access lists with PAM, newscacheclean
2008–2024 Christof Meerwald The 1.3 line in Subversion: IPv6, TLS with GnuTLS, systemd
since 2026 this repository Maintained here since 2026-10-18, with Christof Meerwald's agreement; releases from 1.3.17 on

This repository is now the upstream. It holds the complete history: Herbert Straub's GitHub import of 1.2rc6, with Christof Meerwald's Subversion history on top (branch trunk). Details and the original websites are in the README.

Getting help

Clone this wiki locally