API Reference Bandit v0.3.7


Defines a Bandit server as part of a supervision tree. A typical child spec to start a Bandit server hosting a plug looks like

Defines behaviour to be implemented by HTTP Adapters in addition to those defined by Plug.Conn.Adapter.

Raised by bandit adapters if they are commanded to read a body which already been read.

Raised by bandit adapters if they are commanded to send a request before request headers have been read.

Delegates all inplementation of the ThousandIsland.Handler behaviour to an implementation specified in state. Allows for clean separation between protocol implementations & friction free protocol selection & upgrades.

An HTTP 1.0 & 1.1 Thousand Island Handler

Represents the state of an HTTP/2 connection

Errors as defined in RFC7540§11

Helpers for working with flow control window calculations

An HTTP/2 handler. Responsible for

Settings as defined in RFC7540§6.5.2 and §11.3

Carries out state management transitions per RFC7540§5.1. Anything having to do with the internal state of a stream is handled in this module. Note that sending of frames on behalf of a stream is a bit of a split responsibility: the stream itself may update state depending on the value of the end_stream flag (this is a stream concern and thus handled here), but the sending of the data over the wire is a connection concern as it must be serialized properly & is subject to flow control at a connection level

Represents a collection of HTTP/2 streams, accessible by stream id or pid. Provides the ability to track streams with any identifier, even though it only manages explicit state for existing (current) streams.

The initial protocol implementation used for all connections. Switches to a specific protocol implementation based on configuration, ALPN negotiation, and line heuristics.