Unix
module of the standard library.
Overview: What you can do with OCamlnet:
| Domain | Task | Protocol/mechanism | Frameworks |
| Web applications | Dynamic web content, Connect with web server, Standalone web servers |
Web server connectors: CGI, FastCGI, SCGI, AJP. HTTP server |
Netcgi (connector framework) |
| Network applications (classic client/server) |
SunRPC clients, SunRPC servers |
SunRPC binary protocol, SunRPC stub generator, Portmapper/RPCBIND, RPCSEC_GSS |
|
| Network applications (modern client/server) |
Call HTTP interfaces, Provide HTTP interfaces |
HTTP client, HTTP server, HTTP authentication |
|
| Email applications | Create emails with attachments, Send emails, Parse emails, Interact with email server |
SMTP client, POP client, SASL authentication |
|
| Network utilities | Data download and upload, Encode and decode, Character sets, Structured formats, URLs, IPv6 |
HTTP client, FTP client |
Netfs (filesystem framework) |
| System utiltities | Invoke commands, Daemonize, Shared memory, Logging, Locales, Timers |
|
Netplex (multi-process daemons) |
| Authentication and security | Network authentication, Integrity protection, Privacy |
TLS (via GnuTLS), SASL, GSSAPI (Kerberos), LDAP client |
Pluggable security providers for TLS, SASL, GSSAPI, Digests, Symmetric ciphers |
Ocamlnet4: Changes in OCamlnet-4Foreword: How Ocamlnet is organizedGet: How to get OCamlnetPlatform: Which functions are available on which platform
(POSIX/Win32). Also hints for portable programming.Ipv6: The state of IPv6 supportTls: TLS supportCrypto: CryptographyAuthentication: Authentication frameworksCredentials: How to express and store credentialsGssapi: The GSSAPI security layerRegexp: Regular expression backends
Netchannels_tut: The Netchannels tutorial - strongly
recommended read!Netmime_tut: The Netmime tutorialNetsendmail_tut: The Netsendmail tutorialNetulex_tut: The Netulex tutorialNeturl_tut: The Neturl tutorialEqueue_howto: The Equeue, Unixqueue, and Engines HOWTOEqueue_intro: Introduction to programming with equeueNetplex_intro: Introduction to NetplexNetplex_advanced: Advanced features of NetplexNetplex_admin: Netplex administration guideNetshm_intro: Shared Memory for IPCShell_intro: Motivation for shell
netstring library: string processing functions
netstring focuses on string processing functions, and base definitions
for other libraries.
| Netaccel |
Accelerators for bytecode
|
| Netaccel_link |
Enables accelerator module
Netaccel
|
| Netaddress |
Parsing of mail addresses
|
| Netasn1 |
ASN.1 support functions
|
| Netasn1_encode |
ASN.1 encoder
|
| Netauth |
Some primitives for authentication
|
| Netaux |
Internal auxiliary functions
|
| Netbuffer |
A Netbuffer.t is a buffer that can grow and shrink dynamically.
|
| Netchannels |
Object-oriented I/O: Basic types and classes
|
| Netchannels_crypto |
Crypto extensions for
Netchannels
|
| Netcompression |
Registry for compression algorithms
|
| Netconversion |
Conversion between character encodings
|
| Netdate |
Support for common date/time parsing and formatting.
|
| Netdn |
X.500 distinguished names
|
| Netencoding |
Base64, Quoted Printable, URL encoding, HTML escaping
|
| Netfs |
Class type
stream_fs for filesystems with stream access to files
|
| Netglob |
Globbing
|
| Netgssapi_auth |
Authentication helpers for GSSAPI
|
| Netgssapi_support |
Support functions for GSS-API
|
| Nethtml |
Parsing of HTML
|
| Nethttp |
Basic definitions for the HTTP protocol
|
| Netmappings |
Internal access to the character conversion database
|
| Netmech_crammd5_sasl |
The CRAM-MD5 SASL mechanism (RFC 2195), which is obsolete and only
provided for completeness.
|
| Netmech_digest_http |
Digest authentication for HTTP
|
| Netmech_digest_sasl |
The DIGEST-MD5 SASL mechanism (RFC 2831).
|
| Netmech_gs2_sasl |
The GS2 bridge for using GSSAPI mechanisms as SASL mechanisms
|
| Netmech_krb5_sasl |
Kerberos 5 as SASL mechanism
|
| Netmech_plain_sasl |
The PLAIN SASL mechanism (RFC 4616).
|
| Netmech_scram |
SCRAM mechanism for authentication (RFC 5802)
|
| Netmech_scram_gssapi |
The SCRAM security mechanism for GSS-API
|
| Netmech_scram_sasl |
SCRAM as SASL mechanism
|
| Netmech_scram_http |
SCRAM for HTTP (prerelease)
|
| Netmech_spnego_http |
SPNEGO (GSSAPI) authentication for HTTP
|
| Netmime |
Netmime contains high-level classes and functions to process
mail and MIME messages.
|
| Netmime_channels |
MIME: parsing and printing for channels
|
| Netmime_header |
MIME: Access methods for frequent standard fields.
|
| Netmime_string |
Low-level functions to parse and print mail and MIME messages
|
| Netnumber |
Binary encodings of numbers
|
| Netoid |
X.500 Object Identifiers
|
| Netpagebuffer |
Buffer for page-aligned I/O
|
| Netsaslprep |
The SASLprep algorithm (RFC 4013)
|
| Netsendmail |
Functions to compose and send electronic mails
|
| Netsockaddr |
Parsing of socket addresses
|
| Netstream |
A netstream is an input channel that is read block by block.
|
| Netstring_str |
Wrapper for regexps with
Str syntax
|
| Netstring_tstring |
Support module for tagged strings
|
| Nettls_support |
Support types and functions for TLS
|
| Netulex |
Support module for Alain Frisch's
ulex lexer generator
|
| Netunichar |
Unicode character information
|
| Neturl |
Uniform Resource Locators (URLs)
|
| Neturl_ldap |
LDAP-specific URLs
|
| Netx509 |
X.509 certificates
|
| Netx509_pubkey |
X.509 public key cryptography - keys and naming
|
| Netx509_pubkey_crypto |
X.509 public key cryptography - wrappers
|
| Netxdr |
External Data Representation
|
| Netxdr_mstring |
Managed Strings
|
netstring-pcre library: additions for PCRE
| Netstring_pcre |
Wrapper for regexps with PCRE syntax
|
netunidata library: Unicode tables
| Netunidata |
Configure how to load Unicode tables
|
netzip library: compression for object channelsSupport for (un)compressing data on the fly with object channels. Requires ocamlzip.
| Netgzip |
Gzip object channels
|
equeue library: concurrent execution flows via event queues
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
|
| Uq_client |
Support for socket clients
|
| Uq_server |
Server sockets
|
| Uq_multiplex |
Multiplex Controllers
|
| Uq_transfer |
Transfer engines
|
| Uq_lwt |
Compatibility with
Lwt
|
| Uq_libevent |
Use Libevent as event loop
|
| Uq_mt |
Using engines in multi-threaded programs
|
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
|
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
|
netplex library: generic server framework
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_mbox |
Netplex message boxes
|
| Netplex_encap |
Type-safe marshalling between processes of the same executable
|
| Netplex_internal |
Internal services
|
| Rpc_netplex |
Netplex support for RPC servers (TCP only)
|
shell library: start external commands
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
|
netshm library: manage shared memory
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.
Note that there is now also the much better The netmulticore library: compute jobs library.
| 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
|
netsys library: system interfaces
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, and
further API's from POSIX-style operating systems.
|
| Netsys_oothr |
Object-oriented thread API
|
| Netsys_signal |
Signal handler framework
|
| Netsys_tmp |
Temporary files
|
| Netsys_mem |
Bigarrays as memory buffers
|
| Netsys_sem |
Generic anonymous semaphores
|
| Netsys_global |
Global variables
|
| 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_polypipe |
Polymorphic message pipes
|
| Netsys_polysocket |
Polymorphic message sockets
|
| Netsys_rng |
Random-number generator
|
| Netsys_crypto_types |
Types for crypto providers
|
| Netsys_crypto |
Cryptographic providers
|
| Netsys_crypto_modes |
Helpers for crypto modes
|
| Netsys_tls |
User-level TLS API
|
| Netsys_ciphers |
Symmetric cryptographic ciphers
|
| Netsys_digests |
Cryptographic digests (hashes)
|
| Netsys_gssapi |
GSS-API Definition
|
nettls-gnutls library: GnuTLS bindings
| Nettls_gnutls |
GnuTLS
|
| Nettls_gnutls_bindings |
Bindings of a C library
|
| Nettls_nettle_bindings |
Bindings of a C library
|
netgss library: GSSAPI bindings
| Netgss |
This is the system-wide version of GSSAPI
|
| Netgss_bindings |
Bindings of a C library
|
Netcgi_porting: Porting netcgi1 programs to netcgi2Nethttpd_intro: Overview over the HTTP daemon
netcgi1 library
The netcgi1 library is no longer supported in Ocamlnet 3. Please
switch to netcgi2.
netcgi2 library: web application framework
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.
|
netcgi2-apache library: run web apps inside Apache
This is an Apache connector for the netcgi2 library.
| Netcgi_apache |
Netcgi Apache "mod" connector.
|
| Netcgi_modtpl |
netcgi2-plex library: run web apps with NetplexNetplex support for running Netcgi2 connectors:
| Netcgi_plex |
Netplex support for FastCGI, SCGI and AJP connectors
|
nethttpd library: standalone web apps
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
|
Rpc_intro: IntroductionRpc_mapping_ref: RPC Language Mapping ReferenceRpc_intro_gss: Securing RPC with the GSS-API
rpc library: SunRPCThis 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/RPCBIND interface
|
| Rpc_portmapper_aux | |
| Rpc_portmapper_clnt | |
| Rpc_transport |
Low-level RPC transporters
|
| Rpc_packer |
Packing and Unpacking of messages; can be used by both client and
server programs.
|
| Rpc_auth_gssapi |
GSS-API for RPC authentication
|
rpc-auth-local extension: authentication for local socketsAuthentication for local socket connections.
| Rpc_auth_local |
Return the authentication method
AUTH_LOCAL.
|
rpc-xti extension: System V helpersSystem 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
|
Important change since OCaml-4.01: This OCaml version changed the
semantics of the built-in primitives caml_modify and
caml_initialize. Essentially, it is no longer possible to modify
OCaml values residing outside the regular OCaml heap. As we do this
inside Netcamlbox and Netmulticore, this change affects these
libraries. Fortunately, there is a workaround on systems supporting weak
symbols (all ELF systems and OS X): Here, caml_modify and
caml_initialize are overridden by Ocamlnet so that they are
again compatible. Note that this is a global modification of the
runtime system!
netcamlbox library: message passingCamlbox 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.
|
netmulticore library: compute jobsNetmulticore 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
|
netclient library: HTTP, FTP, Telnet, POP, SMTP, LDAPThis library includes clients for HTTP, Telnet, FTP, SMTP, POP, and LDAP.
| Nethttp_client |
HTTP 1.1 client
|
| Nethttp_client_conncache |
Connection cache
|
| Nethttp_fs |
HTTP filesystem
|
| Netftp_client |
FTP client
|
| Netftp_data_endpoint |
Senders and receivers for the FTP data connection
|
| Netftp_fs |
FTP filesystem
|
| Netldap |
LDAP client
|
| Nettelnet_client |
Telnet client
|
| Netpop |
This is an interface for the Post Office Protocol - Version 3
(POP3) as specifed by RFC 1939.
|
| Netsmtp |
This is an interface for the Simple Mail Tranfer Protocol (SMTP)
as specified by RFC 2821.
|
The Ocamlnet libraries have been initially written by Gerd Stolpmann and Patrick Doane.
Contributions by
netcgi