API Reference Hell v#0.1.0

Copy Markdown View Source

Modules

Hell is a modern, pure Elixir socket server, inspired heavily by ranch. It aims to be easy to understand & reason about, while also being at least as stable and performant as alternatives.

Hell.Handler defines the behaviour required of the application layer of a Hell server. When starting a Hell server, you must pass the name of a module implementing this behaviour as the handler_module parameter. Hell will then use the specified module to handle each connection that is made to the server.

A minimal config struct containing only the fields needed by connection handlers.

Logging conveniences for Hell servers

Encapsulates the configuration of a Hell server instance

Encapsulates a client connection's underlying socket, providing a facility to read, write, and otherwise manipulate a connection from a client.

The following telemetry spans are emitted by hell

This module describes the behaviour required for Hell to interact with low-level sockets. It is largely internal to Hell, however users are free to implement their own versions of this behaviour backed by whatever underlying transport they choose. Such a module can be used in Hell by passing its name as the transport_module option when starting up a server, as described in Hell.

Defines a Hell.Transport implementation based on TCP SSL sockets as provided by Erlang's :ssl module. For the most part, users of Hell will only ever need to deal with this module via transport_options passed to Hell at startup time. A complete list of such options is defined via the :ssl.tls_server_option/0 type. This list can be somewhat difficult to decipher; by far the most common values to pass to this transport are the following

Defines a Hell.Transport implementation based on clear TCP sockets as provided by Erlang's :gen_tcp module. For the most part, users of Hell will only ever need to deal with this module via transport_options passed to Hell at startup time. A complete list of such options is defined via the :gen_tcp.listen_option/0 type. This list can be somewhat difficult to decipher; by far the most common value to pass to this transport is the following