Ocamlnet is an ongoing effort to collect modules, classes and
functions that are useful to implement network protocols. Since
version 2.2, Ocamlnet incorporates the Equeue, RPC, and Netclient
libraries, so it now really a big player.
In detail, the following features are available:
* netstring is about processing strings that occur in network
context. Features: MIME encoding/decoding, Date/time parsing,
Character encoding conversion, HTML parsing and printing, URL
parsing and printing, OO-representation of channels, and a lot
more.
* netcgi1 and netcgi2 focus on portable web applications. netcgi1 is
the older, backward-compatible version, whereas netcgi2 bases on a
revised design, and is only partly backward-compatible. Supported
are CGI, FastCGI, AJP (mod_jk), and SCGI.
* rpc implements ONCRPC (alias SunRPC), the remote procedure call
technology behind NFS and other Unix services.
* netplex is a generic server framework. It can be used to build
stand-alone server programs from individual components like those
from netcgi2, nethttpd, and rpc.
* netclient implements clients for HTTP (version 1.1, of course), FTP
(currently partially), and Telnet.
* equeue is an event queue used for many protocol implementations. It
makes it possible to run several clients and/or servers in parallel
without having to use multi-threading or multi-processing.
* shell is about calling external commands like a Unix shell does.
* netshm provides shared memory for IPC purposes.
* netsys contains bindings for system functions missing in core O'Caml.
* smtp and pop are two further client implementations for the SMTP
and POP3 protocols.