[
English
]
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.
A small bugfix release, version 0.2.1 was released 2013-03-24.
- planned retirement: Guile 1.3.4 support
Unless there is a major outcry from users (unlikely), the next
release will drop (all pretense of) support for Guile 1.3.4.
The earliest supported version will then be Guile 1.4.x.
- distribution now also includes .tar.lz
If you have GNU tar, you can use "tar xf" and it will DTRT.
If not, you can use "lzip -dc TARBALL | tar xf -" to unpack.
- bugfixes
- (Guile 2) segfault in ‘guile_error’
Under Guile 2, serveez(1) segfaults if the config file is closed
at the time ‘guile_error’ is called. Although this has been
addressed (the fix "works for me"), it is still not entirely
satisfying. See comments in func ‘guile_error’ (src/guile.c),
and also test/t007.
- ‘serveez --solitary’ mentioned in more places
Specifically, in ‘serveez --help’ output, and in serveez(1).
- (Guile 1.8) ‘write-line’ imported
Scheme code that uses ‘write-line’ now explicitly imports module
‘(ice-9 rdelim)’. Apparently, Guile 1.8 does not autoload it.
- new built-in proc: ‘fs’
This is a convenience interface for ‘simple-format’.
- Scheme code modernized
Much of src/guile-server/*.scm was modernized: one-armed-‘if’
elimination, replacing homegrown procs w/ SRFIs where possible,
using higher abstractions, etc.
- manpages spiffed
Both serveez(1) and serveez-config(1) now include release
information and updated refs.
- bootstrap tool updated: makeinfo (GNU Texinfo) 5.1
Serveez can be found on http://ftp.gnu.org/gnu/serveez/ (also via FTP), or on one of the mirrors.
Full documentation in many formats is available online. There are three different mailing lists: <bug-serveez@gnu.org> for reporting bugs, <help-serveez@gnu.org> for user support and help and <dev-serveez@gnu.org> for the developers involved in this project.
Serveez needs the GNU Guile (Ubiquitous Intelligent Language for Extensions) language core library for configuring purposes. Currently Serveez is known to work with Guile version 1.4 and above. You can download this package from http://ftp.gnu.org/gnu/guile/. (A very old MinGW32 port is available at http://www.sourceforge.net/projects/mingwrep/.)
You can always get the latest Serveez snapshot from our source code repository (reachable from the project page on Savannah). Please use an official release if you want to work with Serveez. The snapshot might not even compile.
Serveez was originally written by Martin Grabmueller <mgrabmue@cs.tu-berlin.de>. The maintainership has shifted over to Raimund Jacob <raimi@lkcc.org> and Stefan Jahn <stefan@lkcc.org>. Lately, Thien-Thi Nguyen <ttn@gnu.org> has also lent a hand.
Return to GNU's home page.
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
Please send comments on these web pages to webmasters@gnu.org, send other questions to gnu@gnu.org.
Copyright (C) 2013 Thien-Thi Nguyen
<ttn@gnu.org>
Copyright (C) 2000, 2001, 2002, 2003 Stefan Jahn
<stefan@lkcc.org>.
Copyright (C) 2000, 2001, 2002, 2003 Raimund Jacob
<raimi@lkcc.org>.
Copyright (C) 1999, 2000, 2001 Martin Grabmueller
<mgrabmue@cs.tu-berlin.de>.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Last modified: Wed Jan 23 11:58:06 UTC 2013