To build sn, read file INSTALL.

What it is
----------
sn is a small news system for small sites serving perhaps a few dozen
newsgroups, and with a slow connection to the internet.  It is
similar to leafnode (ftp.troll.no, by Arnt Gulbrandsen), though it
lacks an intelligent news fetcher.  The target user is a home or
SOHO with a single modem connection to the Internet, maybe running IP masq
or similar, and serving a few workstations.

sn is different
---------------
sn is fast, because it batches articles 10 (by default) per file,
and arranges the heads of the articles separately from the bodies to
reduce seek overhead.  It also implements the XOVER command, much
beloved by news readers for its speed.

Batching the articles also means you won't consume all your inodes,
and wasted disk space is minimal.  You don't need to build a
separate file system just to spool news.

sn is flexible.  You can subscribe to newsgroups on several upstream
sites, and you can create private newsgroups that are not propagated
upstream.

sn can be made to behave like a caching news system.

sn is simple.  There are no configuration files, only control files
with very simple semantics.

sn is convenient.  It can be set up as an nntp caching server to
retrieve news as people are reading the newsgroup.

sn is small.  Apart from batching, which reduces disk space, sn can
also compress the article bodies.  It also aliases cross posts.
It does not maintain a bulky overview database; instead it gets
overview information directly from the articles.  This is much
faster than it might seem, because of the way the heads and bodies
of articles are packed into an article file.  Spool metadata is
5% to 10% of the total spool size, even with compression.

sn doesn't have to be set up for the system.  You can use it
privately.

The news server does not have to be throttled during expiration.

sn has limitations
------------------
Because the news spool is in an unconventional format, news readers
can read news locally only via NNTP.

IHAVE is not supported.  Use POST instead.

There is no provision for cancelling news, other than going into the
outgoing spool and deleting before it gets sent upstream.

sn has no idea of distributions.

The method sn uses to alias cross posts is similar to filesystem
symlinks rather than hard links, in that if the original article is
expired, the alias breaks.

sn doesn't know how to filter spam.

Requirements
------------
sn is beta.  So far it has run on Linux 2.0 only, but
should work on anything after 1.3.45 because it uses mmap(2)
heavily.  If it runs on your machine, let me know.

You need libz.{a,so} for the compression feature.

You can use the "suck" package to feed the news spool, or you can
use "tcpclient" to make the network connection.  tcpclient is
part of the ucspi package by Dan J. Bernstein, see
http://pobox.com/~djb/ucspi-tcp.html.

I am interested in bug reports/comments.

License
-------
Distribution of sn is covered by the GPL.  See file COPYING.  Use of
sn is not restricted.

Known problems
--------------
It's possible that duplicate articles will be entered in the spool,
if more than one article stream is fed into it simultaneously.  This
probably will never be "fixed", but you can completely prevent it by
ensuring only one input stream is ever active at a time.

Thanks,
-harold
harold-sn@nb.com.sg
