# OcamlNet Reference Manual

OcamlNet consists of several libraries:

- `netstring`
- `cgi`
- `nethttpd`
- `pop`
- `smtp`

In order to explore these libraries, it is recommended to read the module `Netchannels` first, as the object channels defined in this module are a very basic structure, and used by most other modules. There is also a `Netchannels.tutorial`.

## The `netstring` library

Netconversion |
Netchannels |
Netstream | A netstream is an input channel that is read block by block.
Mimestring | Low-level functions to parse and print mail and MIME messages
Netmime | Netmime contains high-level classes and functions to process mail and MIME messages.
Netsendmail | Functions to compose and send electronic mails
Neturl | Uniform Resource Locators (URLs)
Netaddress | Parsing of mail addresses
Netbuffer | A Netbuffer.t is a buffer that can grow and shrink dynamically.
Netdate | Support for common date/time parsing and formatting.
Netencoding | Base64, Quoted Printable, URL encoding, HTML escaping
Netulex | Support module for Alain Frisch's `ulex` lexer generator
Netaccel | Accelerators for bytecode
Netaccel_link | Enables accelerator module `Netaccel`
Nethtml | Parsing of HTML
Nethttp | Basic definitions for the HTTP protocol
Netstring_str | Wrapper for regexps with `Str` syntax
Netstring_pcre | Wrapper for regexps with PCRE syntax
Netstring_mt | Initialisation code for multi-threading
Netmappings | Internal access to the character conversion database
Netaux | Internal auxiliary functions

## The `cgi` library

Netcgi_env | Access to the environment for CGI and related protocols
Netcgi_types | Basic types for CGI and related protocols
Netcgi | Classical CGI implementation
Netcgi_jserv | AJP Connection management
Netcgi_jserv_ajp12 | Implementation of the AJP/1.2 protocol
Netcgi_jserv_app | AJP-based Application Servers
Netcgi_fcgi_10 | Low-level FastCGI Wire Protocol
Netcgi_fcgi | Implementation of FastCGI

## The `nethttpd` library

Overview over the HTTP daemon

Nethttpd_types | Type definitions for the HTTP daemon, and an introduction
Nethttpd_kernel | The protocol kernel of the HTTP daemon
Nethttpd_reactor | The reactive encapsulation of the HTTP daemon
Nethttpd_engine | The event-based encapsulation of the HTTP daemon
Nethttpd_services | Service Providers for HTTP daemon

## The `pop` library

Netpop | This is an interface for the Post Office Protocol - Version 3 (POP3) as specifed by RFC 1939.

## The `smtp` library

Netsmtp |

## Index

Index of types
Index of exceptions
Index of values
Index of class attributes
Index of class methods
Index of classes
Index of class types
Index of modules

## Authors

The Ocamlnet libraries have been initially written by Gerd Stolpmann and Patrick Doane.

Contributions by

- Nicolas George: Netdate
- Eric Stokes: FastCGI support
- Pierre Habouzit: SMTP client

Sponsorships by

- Baretta s.r.l: Nethttpd