GNU Serveez

Serveez is a server framework. It provides routines and help for implementing IP based servers (currently TCP, UDP and ICMP). It is also possible to use named pipes for all connection oriented protocols.

We think it is worth the effort because many people need server functionality within their applications. However, many people experience problems with select()- or poll()-loops, and with non-blocking operations.

This application demonstrates various aspects of advanced network programming in a portable manner. It is known to compile and run on GNU/Linux systems, as well as on other 32-bit and 64-bit flavours of Unix and on Microsoft Windows (9x/ME/NT/2000/XP).

You can use it for implementing your own servers or for understanding how certain network services and operations work.

The package includes a number of servers that work already: an HTTP server, an IRC server, a Gnutella spider and some others. One of the highlights is that you can run all protocols on the same port. The application itself is single threaded but it uses helper processes for concurrent name resolution and ident lookups.

Requirements

Serveez needs the GNU Guile (Ubiquitous Intelligent Language for Extensions) language core library for configuring purposes. Currently Serveez is known to work with Guile 1.4 and later. You can download this package from ftp.gnu.org. (A very old MinGW32 port is available at SourceForge.)

Download / News

(HTTPSHTTPFTPmirrors)

Latest release: 0.3.1 (2021-12-11)

  • build regression fixed

    Part of the documentation build process uses programs to scan both Scheme and C files for "doc strings" (actually, comments). The Serveez 0.3.0 (2021-12-06) release introduced a bug whereby the Scheme-scanning program was passed a flag that is only valid for the C-scanning program. Result: FTBFS (sometimes).

  • URLs now predominantly https

    The world is less trusting, alas. Docs and ‘--version’ output updated, as well as all the copyright notices in the source (of course). URLs found in ChangeLog files are the same.

  • bootstrap/maintenance tools

    upgraded:

     Guile-BAUX 20211208.0839.a5245e7
     GNU gnulib 2021-12-10 21:54:54

    as before:

     GNU Texinfo 6.8
     GNU Autoconf 2.71
     GNU Automake 1.16.5
     GNU Libtool 2.4.6

(unadorned)

Documentation

Documentation for Serveez is available online, as is documentation for most GNU software. You may also find information about Serveez by running info serveez or by looking at /usr/share/doc/serveez/, /usr/local/share/doc/serveez/, or similar directories on your system.

Mailing Lists

Serveez has the following mailing lists:

Announcements about Serveez and most other GNU software are made on the info-gnu mailing list (archive).

Security reports that should not be made immediately public can be sent directly to the maintainer. If there is no response to an urgent issue, you can escalate to the general security mailing list for advice.

Getting involved

Development of Serveez, and GNU in general, is a volunteer effort, and you can contribute. For information, please read How to help GNU. If you'd like to get involved, it's a good idea to join the discussion mailing list (see above).

For development sources, issue trackers, and other information, please see the Serveez project page at savannah.gnu.org.

Serveez is currently maintained by Thien-Thi Nguyen. Past maintainers are: Stefan Jahn, Raimund Jacob, Martin Grabmüller. Please use the mailing lists for contact.

Licensing

Serveez is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.