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 is now really a big player.
In detail, the following features are available:
* netstring is about processing strings that occur in network
contexts. 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.
* netcgi2 focuses on portable web applications.
* 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 OCaml.
* netsmtp and netpop are client implementations of the SMTP and POP3
protocols.
* Bindings for GnuTLS and GSSAPI (TLS/HTTPS support).