package eio

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Eio.StdenvSource

The standard environment of a process.

All access to the outside world comes from running the event loop, which provides an environment (e.g. an Eio_unix.Stdenv.base).

Example:

  let () =
    Eio_main.run @@ fun env ->
    Eio.Path.with_open_dir env#fs "/srv/www" @@ fun www ->
    serve_files www
      ~net:env#net

Standard streams

To use these, see Flow.

Sourceval stdin : < stdin : Flow.source as 'a.. > -> 'a
Sourceval stdout : < stdout : Flow.sink as 'a.. > -> 'a
Sourceval stderr : < stderr : Flow.sink as 'a.. > -> 'a

File-system access

To use these, see Path.

Sourceval cwd : < cwd : _ Path.t as 'a.. > -> 'a

cwd t is the current working directory of the process (this may change over time if the process does a "chdir" operation, which is not recommended).

Sourceval fs : < fs : _ Path.t as 'a.. > -> 'a

fs t is the process's full access to the filesystem.

Paths can be absolute or relative (to the current working directory). Using relative paths with this is similar to using them with cwd, except that this will follow ".." and symlinks to other parts of the filesystem.

fs is useful for handling paths passed in by the user.

Network

To use this, see Net.

Sourceval net : < net : Net.t as 'a.. > -> 'a

net t gives access to the process's network namespace.

Processes

To use this, see Process.

Sourceval process_mgr : < process_mgr : Process.mgr as 'a.. > -> 'a

process_mgr t allows you to manage child processes.

Domains (using multiple CPU cores)

To use this, see Domain_manager.

Sourceval domain_mgr : < domain_mgr : Domain_manager.t as 'a.. > -> 'a

domain_mgr t allows running code on other cores.

Time

To use this, see Time.

Sourceval clock : < clock : Time.clock as 'a.. > -> 'a

clock t is the system clock (used to get the current time and date).

Sourceval mono_clock : < mono_clock : Time.Mono.t as 'a.. > -> 'a

mono_clock t is a monotonic clock (used for measuring intervals).

Randomness

Sourceval secure_random : < secure_random : Flow.source as 'a.. > -> 'a

secure_random t is an infinite source of random bytes suitable for cryptographic purposes.

Debugging

Sourceval debug : < debug : < Debug.t.. > as 'a.. > -> 'a

debug t provides privileged controls for debugging.

OCaml

Innovation. Community. Security.