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
-
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
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:
- bug-serveez for reporting bugs,
- help-serveez for user support and help,
- dev-serveez for development discussion.
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.