Lwt - API Reference


Core library


The core library (lwt package) contains the Lwt module, which defines cooperative threads with all the primitives to manipulate them. It also provides several general purpose modules, which do not depend on any external package.

Lwt

Module Lwt: cooperative light-weight threads.

Lwt_condition

Conditions

Lwt_list

List helpers

Lwt_mutex

Cooperative locks for mutual exclusion

Lwt_mvar

Mailbox variables

Lwt_pool

Creating pools (for example pools of connections to a database).

Lwt_sequence

Mutable sequence of elements

Lwt_pqueue
Lwt_stream

Data streams

Lwt_switch

Lwt switches


Unix bindings


The lwt.unix package provides:* the Lwt_unix module, which wrap system calls into cooperative ones

  • the Lwt_io module, which defines cooperative byte channel, in replacement of ones of the standard library
  • module helpers for logging, spawning processes, ...
Lwt_daemon

Daemon helpers

Lwt_gc

Interaction with the garbage collector

Lwt_io

Buffered byte channels

Lwt_log

Logging facility

Lwt_main

Main loop and event queue

Lwt_engine

Lwt unix main loop engine

Lwt_process

Process management

Lwt_throttle

Rate limiters

Lwt_timeout

Timeouts

Lwt_unix

Cooperative system calls

Lwt_bytes

Byte arrays

Lwt_sys

System informations.


This package depends on the core library and the unix package.

Reactive programming helpers


The lwt.react package provides helpers for functionnal reactive programming with Lwt. It is based on the react package. The Lwt_react module is a replacement for the React module. It contains:

  • all the functions of the React module
  • Lwt specific primitives
  • cooperative versions of react functions
Lwt_react

React utilities


This package depends on the core library and the react package.

Syntax extensions


Lwt is shipped with two syntax extensions. The first one, contained in the lwt.syntax package, aims to make coding with Lwt easier, and to make code more readable. The second, contained in the package lwt.syntax.log, is a camlp4 filter which decreases the performance penalty when using logging by inlining level tests.

Pa_lwt

Syntactic sugars for lwt

Pa_lwt_log

Logging facility


Terminal manipulation


The package lwt.text provides:* terminal manipulation through the module Lwt_term

  • text channels which behaves as byte channels but are aware of the text encoding
  • a cooperative, fully customizable read-line facility
Lwt_read_line
Lwt_term
Lwt_text


This package depends on the core library, and the lwt.react, lwt.unix, text packages.

Miscellaneous


The following modules are wrapper for integration of non-Lwt functions/packages into Lwt.

Lwt_glib
Lwt_lib

Cooperative unix system calls

Lwt_preemptive

This module allows to mix preemptive threads with Lwt cooperative threads.

Lwt_ssl

OCaml-SSL integration


Index