netstring
is about processing strings that occur in network contextnetcgi1
and netcgi2
focus on portable web applicationsnethttpd
is a web server component (HTTP server implementation)netplex
is a generic server frameworkrpc
implements OncRPCnetclient
implements clients for HTTP, FTP, and Telnet equeue
is an event queue used for many protocol implementationsshell
is about calling external commandsnetshm
provides shared memory for IPC purposesnetsys
contains bindings for system functionssmtp
and pop
are two further client implementationsnetmulticore
and netcamlbox
help parallelizing execution
Netchannels
are a way to abstract sequential I/O channelsEqueue
and Unixqueue
make
asynchronous protocol interpreters possibleSome introductional notes how Ocamlnet is organized:
An overview of the list of changes is available in this external article:
Please read this document for extended information which features are supported on which platform:
Platform
: Which functions are available on which platform
(POSIX/Win32). Also hints for portable programming.
netstring
library
netstring
focuses on string processing functions.
Netconversion |
Conversion between character encodings
|
Netchannels |
Object-oriented I/O: Basic types and classes
|
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.
|
Netpagebuffer |
Buffer for page-aligned I/O
|
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
|
Netfs |
Class type
stream_fs for filesystems with stream access to files
|
Netglob |
Globbing
|
Netauth |
Some primitives for authentication
|
Netstring_str |
Wrapper for regexps with
Str syntax
|
Netstring_pcre |
Wrapper for regexps with PCRE syntax
|
Netmappings |
Internal access to the character conversion database
|
Netaux |
Internal auxiliary functions
|
Netnumber |
Binary encodings of numbers
|
Rtypes |
Binary encodings of numbers (Legacy)
|
Xdr |
External Data Representation
|
Xdr_mstring |
Managed Strings
|
Guides
Netchannels_tut
: The Netchannels
tutorial - strongly
recommended read!Netmime_tut
: The Netmime
tutorialNetsendmail_tut
: The Netsendmail
tutorialNetulex_tut
: The Netulex
tutorialNeturl_tut
: The Neturl
tutorialnetzip
librarySupport for (un)compressing data on the fly with object channels. Requires ocamlzip.
Netgzip |
Gzip object channels
|
The
netcgi1
library
The netcgi1
library is no longer supported in Ocamlnet 3. Please
switch to netcgi2
.
The
netcgi2
library
This is the revised library for Web applications, now called netcgi2
.
Netcgi |
Common data-structures for CGI-like connectors.
|
Netcgi_common |
Functions to develop new connectors.
|
Netcgi_cgi |
Classical CGI connector.
|
Netcgi_fcgi |
FastCGI connector.
|
Netcgi_ajp |
Apache JServ Protocol (AJP) 1.3 connector.
|
Netcgi_scgi |
SCGI connector.
|
Netcgi_test |
Connector for testing your code.
|
Netcgi_dbi |
Pools of connections for the ocamldbi generic database interface.
|
Netcgi1_compat |
Compatibility module with the previous version of Netcgi.
|
Guides
Netcgi_porting
: Porting netcgi1
programs to netcgi2
netcgi2-apache
library
This is an Apache connector for the netcgi2
library.
Netcgi_apache |
Netcgi Apache "mod" connector.
|
Netcgi_modtpl |
The
netcgi2-plex
library
Netplex support for running Netcgi2 connectors:
Netcgi_plex |
Netplex support for FastCGI, SCGI and AJP connectors
|
The
nethttpd
library
The nethttpd
library is a Web server component written in O'Caml.
For a full web server, you'll also need netplex
.
Nethttpd_types |
Type definitions for the HTTP daemon
|
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
|
Nethttpd_plex |
Netplex support
|
Nethttpd_util |
Utility functions
|
Guides
Nethttpd_intro
: Overview over the HTTP daemonnetplex
library
The netplex
library is a protocol-independent server framework.
Especially, it can be used in conjunction with nethttpd
to
build web servers, and with rpc
to build RPC servers.
Netplex_types |
Types for
Netplex
|
Netplex_config |
Read the configuration file
|
Netplex_controller |
Controller
|
Netplex_container |
Containers
|
Netplex_sockserv |
Socket service creation
|
Netplex_workload |
Workload management
|
Netplex_kit |
Netplex toolkit
|
Netplex_cenv |
Container environment
|
Netplex_log |
Loggers
|
Netplex_main |
Main program for Netplex servers
|
Netplex_mp |
Multi-processing provider
|
Netplex_mt |
Multi-threading provider
|
Netplex_mutex |
Netplex-wide mutexes
|
Netplex_semaphore |
Netplex-wide semaphores
|
Netplex_sharedvar |
Netplex-wide variables
|
Netplex_encap |
Type-safe marshalling between processes of the same executable
|
Rpc_netplex |
Netplex support for RPC servers (TCP only)
|
Guides
Netplex_intro
: Introduction to Netplex
Netplex_advanced
: Advanced features of Netplex
rpc
libraryThis library implements OncRPC (alias SunRPC).
Rpc |
Common types and exceptions
|
Rpc_program |
RPC programs
|
Rpc_client |
RPC clients
|
Rpc_simple_client |
Synchronous API for RPC clients
|
Rpc_proxy |
RPC proxies
|
Rpc_server |
RPC servers
|
Rpc_auth_sys |
Authentication module AUTH_SYS
|
Rpc_portmapper |
Portmapper version 2
|
Rpc_portmapper_aux | |
Rpc_portmapper_clnt | |
Rpc_transport |
Low-level RPC transporters
|
Rpc_packer |
The first n bytes of the packed value
|
Rpc_auth_gssapi |
GSS-API for RPC authentication
|
Guides
Rpc_intro
: IntroductionRpc_mapping_ref
: RPC Language Mapping ReferenceRpc_intro_gss
: Securing RPC with the GSS-API
rpc-auth-local
extensionAuthentication for local socket connections.
Rpc_auth_local |
Return the authentication method
AUTH_LOCAL .
|
The
rpc-auth-dh
extension
This is Diffie-Hellman authentication for OncRPC (also known as "Secure RPC").
Rpc_auth_dh |
Diffie-Hellman authentication (AUTH_DH alias AUTH_DES)
|
Rpc_key_service |
Contact the keyserv daemon to encrypt/decrypt data with the common
key.
|
Rpc_time |
Get the time of the server (using the RFC 868 netdate protocol)
|
The
rpc-xti
extension
System V provides a network API called XTI in addition to the socket API. This library allows it to connect to RPC services that can only be reached over a local XTI connection ("cots" connection).
Rpc_xti_client |
Minimal support for TI-RPC over the XTI API
|
The
rpc_ssl
extension
This library allows you to tunnel RPC through SSL/TLS.
Rpc_ssl |
Securing RPC by SSL
|
The
netgssapi
library with the GSS-API framework
Netgssapi |
GSS-API Definition
|
Security mechanisms
The
netmech-scram
library for SCRAM
Implements SCRAM (RFC 5802). Right now only for GSS-API.
Netmech_scram |
SCRAM mechanism for authentication (RFC 5802)
|
Netmech_scram_gssapi |
The SCRAM security mechanism for GSS-API
|
The
netcamlbox
library
Camlbox is a fast message-passing system between processes running on the same machine. It uses shared memory for communication. A message sent to a Camlbox is only copied once, not twice.
Netcamlbox |
Camlboxes are a fast IPC mechanism to send Ocaml values from one
process to another.
|
The
netmulticore
library
Netmulticore is an experimental framework for managing multiple processes, and sending messages between them.
Netmcore |
Multi-processing for compute jobs
|
Netmcore_process |
Statically typed processes
|
Netmcore_mempool |
Memory pools
|
Netmcore_heap |
Shared heaps of structured values
|
Netmcore_array |
Shared arrays
|
Netmcore_buffer |
Shared buffer
|
Netmcore_hashtbl |
Shared hashtables
|
Netmcore_matrix |
Shared 2-dimensional arrays (matrices)
|
Netmcore_queue |
Shared queues
|
Netmcore_ref |
Shared mutable variables
|
Netmcore_mutex |
Mutexes
|
Netmcore_sem |
Semaphores
|
Netmcore_condition |
Condition variables
|
Netmcore_camlbox |
Camlboxes for use in netmulticore programs
|
Guides
Netmcore_tut
: Tutorialnetclient
libraryThis library includes clients for HTTP, Telnet, and (incomplete) FTP.
Http_client |
HTTP 1.1 client
|
Http_client_conncache |
Connection cache
|
Http_fs |
HTTP filesystem
|
Telnet_client |
Telnet client
|
Ftp_client |
FTP client
|
Ftp_data_endpoint |
Senders and receivers for the FTP data connection
|
The
equeue
library
equeue
is a fundamental library for event queues. It is mainly used
by a number of other libraries of Ocamlnet to parallelize network code
(so-called multiplexing).
Equeue | Equeue implements generic event queues.
|
Unixqueue |
Unixqueues are one of the two forms of system event loops provided
by Ocamlnet.
|
Unixqueue_pollset |
Unixqueue implementation on top of
Netsys_pollset
|
Unixqueue_select |
This the old
Unix.select -based imeplementation of event systems
which was the default one until Ocamlnet-2.2.
|
Uq_engines |
An engine performs a certain task in an autonomous way.
|
Uq_socks5 |
This module implements a SOCKS version 5 client (see RFC 1928) for
use with the
Uq_engines.connector , Uq_engines.listener , and
Uq_engines.datagram_provider engine factories.
|
Uq_resolver |
Support for pluggable resolvers
|
Uq_io |
Unified engines for stream I/O
|
Guides
Equeue_intro
: Introduction to programming with equeue
equeue-gtk1
and equeue-gtk2
extensions
Extensions for equeue
to integrate the event queue into user interfaces
made with lablgtk and lablgtk2
Uq_gtk |
Integration with lablgtk/lablgtk2 event systems
|
The
equeue-ssl
extension
Extensions for equeue
to support SSL
Uq_ssl |
Asynchronous SSL connections
|
The
equeue-tcl
extension
Extension for equeue
to integrate the event queue into user interfaces
made with labltk
Uq_tcl |
Integration with the labltk event system
|
The
pop
library
This is a simple POP 3 client.
Netpop |
This is an interface for the Post Office Protocol - Version 3
(POP3) as specifed by RFC 1939.
|
The
smtp
library
This is a simple SMTP client.
Netsmtp |
This is an interface for the Simple Mail Tranfer Protocol (SMTP)
as specified by RFC 2821.
|
The
shell
library
The shell
library allows you to start external commands. It is integrated
into equeue
.
Shell |
Calls external programs, creates pipelines, etc.
|
Shell_sys |
Calls external programs, creates pipelines, etc.
|
Shell_uq |
Run shell commands within Unixqueues
|
Shell_fs |
Shell filesystem
|
Guides
Shell_intro
: Motivation for shell
netshm
library
The netshm
library manages a shared memory object either as hash table
or array. It is designed to be used in multi-processing program architectures.
Netshm |
Shared memory for O'Caml programs using multi-processing
|
Netshm_data |
Data representation for shared memory
|
Netshm_hashtbl |
Hash tables in shared memory
|
Netshm_array |
Arrays in shared memory
|
Guides
Netshm_intro
: Shared Memory for IPCnetsys
library
The netsys
library contains a number of low-level functions used by
other Ocamlnet libraries.
Platform | |
Netexn |
Exception registry
|
Netlog |
Basic logging facility
|
Netsys |
System calls missing in the
Unix module
|
Netsys_posix |
POSIX-specific system calls missing in the
Unix module
|
Netsys_oothr |
Object-oriented thread API
|
Netsys_signal |
Signal handler framework
|
Netsys_tmp |
Temporary files
|
Netsys_mem |
Bigarrays as memory buffers
|
Netsys_pollset |
Sets of file descriptors for polling
|
Netsys_pollset_generic |
Returns a good standard implementation of pollset for this platform.
|
Netsys_pollset_posix |
Pollsets for POSIX operating systems
|
Netsys_pollset_win32 |
Pollsets for Win32
|
Netsys_win32 |
Primitives for Win32
|
Netsys_rng |
Random-number generator
|
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
Index of module types
Authors
The Ocamlnet libraries have been initially written by Gerd Stolpmann and Patrick Doane.
Contributions by
netcgi