Freitag, 25. Februar 2011

NNTP-Server WendzelNNTPd-2.0.0-beta ist fertig!

Nach etwa 1,5 Jahren Entwicklungszeit habe ich nun endlich die 2.0-Beta-Version von meinem Usenet-Server auf die Reihe bekommen. Leider steht mir für die Open Source-Entwicklung nicht mehr so viel Zeit zur Verfügung, wie noch vor einigen Jahren.

WendzelNNTPd ist ein Usenet-Server, den ich bereits seit 2004 entwickle und der mittlerweile vollständig in C geschrieben ist. Die begehrte C++-Oberfläche (Qt) habe ich für die neue Version in den Müll verfrachtet. Dafür wurde das Konsolentool 'wendzelnntpadm', mit dem die Administration erledigt wird, deutlich erweitert.

Was gibt es Neues? Nun, wahrscheinlich einige Features, die kein anderer Usenet-Server dieser Welt haben dürfte:

  • Einen Datenbank-Abstraktionslayer (man kann in der Konfiguration auswählen, ob man, nach wie vor, mit SQlite3, oder mit dem von nun an unterstützten MySQL arbeiten möchte). Das Hinzufügen weiterer Datenbanken ist (einmal vom Tippaufwand abgesehen) relativ einfach und  vom eigentlichen Server-Code getrennt.
  • Es gibt nun Access Control Listen (ACLs) für erhöhte Sicherheit inklusive Role Based Access Control (RBAC), um beim Administrieren Zeit zu sparen. Ein Administrator kann also nicht nur einem Benutzer x Zugriff auf eine Newsgroup y geben, und einem Benutzer z nicht, sondern er kann auch einfach die Benutzer (a,b,c) in eine Rolle packen und der Rolle verschiedene Newsgroups zuweisen. Damit lassen sich etwa einfach 'mal zehn Entwickler mit einer Entwicklungsnewsgroup für ein neues Produkt verbinden.
  • Es gibt "invisible"-Newsgroups: Hat ein Benutzer keinen Zugriff auf eine Newsgroup, taucht sie nicht beim LIST'ing auf. Sollte der User dennoch in Erfahrung bringen, dass eine Newsgroup existiert, dann kann er sie natürlich trotzdem weder mitlesen, noch darin Posten.
  • Die Dokumentation ist neu geschrieben und liegt jetzt in LaTeX vor (verfügbar als HTML- und PDF-Version).
  • Unglaublich viele Bugfixes und unglaublich viel Code-Clean-Up.
  • Außerdem: Diverses Detailfehlverhalten ist nun standardkonformer (leider fehlen noch immer eine Menge NNTP-Befehle und Standard-Details).
  • Weitere NNTP-Commands werden unterstützt:
    • LISTGROUP
    • LIST OVERVIEW.FMT
    • XGTITLE
    • LIST NEWSGROUPS
Aber nicht vergessen: Der Code ist BETA -- und zwar erst seit einigen Stunden ;) Feedback ist selbstverständlich gern gesehen, Patches für neue Features aber noch mehr.

Anmerkung: Die regulären Ausdrücke, die u.a. bei XGTITLE [r] verarbeitet werden, basieren bei WendzelNNTPd auf der regex-Library, wie Sie bei Linux typisch ist. Die NNTP-Syntax für reguläre Ausdrücke passt also nicht exakt. Beispielsweise ist * bei WendzelNNTPd .* , die üblichen Ausdrücke, wie ^a, b$ usw. funktionieren selbstverständlich dennoch.

Keine Kommentare:

Kommentar veröffentlichen