[ANN] niouz 0.5 (simple NNTP server)

  • Thread starter Pierre-Charles David
  • Start date
P

Pierre-Charles David

Hi everybody,

I'm releasing version 0.5 of niouz, a very simple, standalone NNTP
server in pure Ruby. It does not offer all the features of standard
NNTP servers -- most notably, it can't communicate with other servers,
but only with clients -- but it is orders of magnitudes simpler to
deploy: one Ruby file, no dependencies outside Ruby 1.8, very simple
setup.

It's designed to provide a simple and easy way to quickly set up
private newsgroups for small groups of people. It generally does the
Simplest Thing That Can Possibly Work, and would probably not scale
beyond a few dozen users and a few thousands messages. On the other
hand, the resulting code is quite small (about 600 lines including
comments), easy to understand and to modify/extend.

It's stable under the very low loads it's been tested until now, but I
can't make any claim beyond that.

AVAILABILITY

- Homepage: http://pcdavid.net/software/niouz/
- Direct download: http://pcdavid.net/software/niouz/niouz.rb
- Current version and status: 0.5, beta
- License: GPL

FEATURES

- One file, no dependencies outside Ruby 1.8, very easy to setup.
- Small (less than 600 lines), simple code, easy to customize/extend.
- Generally does The Simplest Thing That Can Possibly Work.
- (Too) simple article "database" format; easy to hack if necessary.
- Implements all the basic NTTP commands, plus some extensions (some
partially, but well enough for most clients).
- Works with all major clients.
- Never forgets/expires articles.
- Lots of room for expansion. :)

LIMITATIONS

- Does not interact with other NNTP servers (by design).
- Needs to be root to run on standard NNTP port 119.
- No doc or configuration capabilities. If you need those, read/edit the code!
- Probably does not scale.
- Stays in memory (no inetd mode).
- Has only been tested with with very low loads, so there are probably
multithreading issues.
- No logging.
- Only tested under Linux.
- Some relatively standard NNTP extensions are not supported, most
importantly article cancellation and authentification.
- Yes, there are lots of these. There's a reason it called 0.5...

FUTURE PLANS

I don't have enough time to continue niouz development. Although there
are lots of things which could be improved and added, it has reached
the point where it solves my initial problem well enough.

If someone is interested in taking over the project, please contact
me. Given the simplicity of the implementation and (I hope) relative
readability of the code, I think it would be a good project for
someone new to Ruby but willing to get involved.

Happy coding.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top