{2 Lwt - API Reference}

{3 Core library}

The {e core} library ({e 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.

{!modules:
Lwt
Lwt_condition
Lwt_list
Lwt_mutex
Lwt_mvar
Lwt_pool
Lwt_sequence
Lwt_stream
}

{3 Unix bindings}

The {e 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, ...

{!modules:
Lwt_daemon
Lwt_gc
Lwt_io
Lwt_log
Lwt_main
Lwt_process
Lwt_throttle
Lwt_timeout
Lwt_unix
}

This package depends on the {e core} library and the {e unix} package.

{3 Reactive programming helpers}

The {e lwt.react} package provides helpers for functionnal reactive
programming with Lwt. It is based on the {e react} package. Both
{!Lwt_event} and {!Lwt_signal} modules contains:

- Lwt specific primitives
- cooperative versions of {e react} functions

{!modules:
Lwt_event
Lwt_signal
}

This package depends on the {e core} library and the {e react} package.

{3 Syntax extensions}

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

{!modules:
Pa_lwt
Pa_log
}

{3 Terminal manipulation}

The package {e 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

{!modules:
Lwt_read_line
Lwt_term
Lwt_text
}

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

{3 Miscellaneous}

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

{!modules:
Lwt_glib
Lwt_lib
Lwt_preemptive
Lwt_ssl
}

{3 Index}

{!indexlist}
