New release of my Usenet server WendzelNNTPd!
(updated: Oct, 2025)
Looking for a space-efficient and easy-to-use communications platform without HTML content? A system of forums where everybody can exchance opinions without getting the next topics highlighted based on some algorithm that violates your privacy and produces some personalized filter bubble? Well, then I have good news for you!
The Usenet is a rather ancient network communication system which is accessible with Usenet clients, but it is also well integrated into several e-mail clients such as Thunderbird. You can post messages into so-called newsgroups and people can reply to your messages just like they reply to an e-mail thread. You can also use it to share binary files (some people do that and even pay money to access binary newsgroups). The underlying protocol NNTP is rather old and dates back to early 1986 (first specified in RFC 977 and updated by some RFCs in the following years).
However, NNTP is still in use by some people. For me, it is a nice retro networking protocol and I run my own Usenet server in our university network (not accessibly from the outside). In one exercise, my networking students have to post a message to some newsgroup via Telnet (NNTP is only a minor topic in my class; I teach it so that students play with Telnet and NNTP, SMTP etc.). And yes, NNTP is a plain-text protocol that you can also directly work with using a terminal.
In 2004, I started working on my own Usenet server called WendzelNNTPd, written in C because writing your own server (in a system-level language) lets you understand a network protocol much better. I also wrote my own DNS server and my own high-performance HTTP server back then to learn more about socket optimization.
WendzelNNTPd runs on Linux, BSD and (Open)Solaris. Probably, it would also run on other Unix-like operating systems.
The first alpha release appeared in May 2005 and contained roughly 2.2k lines of code. Version 1.0 was released in July 2007. Versions 1.x also ran on Windows and provided a Qt-based GUI. I later dropped the GUI. Version 2.0 was released in June 2011. Since then, I added small features from time to time and provided several fixes to the codebase.
Being a side-project of mine, it took from 2011 (release of version 2.0) to early 2021 until another major sub-version (2.1) was ready, including some new features, such as (finally) SHA2-based password hashing. Looking into the changelog that contains the modifications performed since version 2.0, I think the new sub-version 2.1 was justified: since version 2.0, several fixes were applied. Several (mostly minor) features were added and the code as well as the documentation received several cleanups.
In October 2025, version 2.2 was finally released. The new version included several key advancements which were made possible due to students from the University of Hagen, Germany. These students provided new features (such as TLS integration, a modernized build system, Docker support, a revised documentation, new packages, several fixes etc. pp.) while I only had time to take care of minor improvements and to somehow orchestrate the different contributions. For this reason, I am very grateful for my students. Key contributors are now mentioned in the AUTHORS file.
The full project history is available in the HISTORY file of the repository.
If you are interested in retro computing/networking, then you might find it interesting to work with this Usenet server. Most of today’s and most of the historical Usenet clients should be able to exchange messages with it. Also, WendzelNNTPd can run on outdated hardware, rendering it a good service for your old PC from the 90s. However, my server is a stand-alone service that cannot sync with other NNTP services (so far!), which might be one of the major drawbacks.
Let me know if you
- run WendzelNNTPd (even if not publicly accessible),
- find bugs,
- like to contribute a patch or extension or
- create a package/port for some Linux/BSD/misc operating system.
Have fun!