package httpcats

  1. Overview
  2. Docs

Module Runtime.MakeSource

Make runs an HTTP state-machine on top of a flow. The Runtime itself allocates no scratch buffer: it hands the connection's bigstring to Flow.S.read and the Faraday iovecs to Flow.S.writev. A flow which can only speak bytes/string goes through Flow.Of_bytes, which owns the buffer it needs.

Parameters

module Flow : Flow.S
module Runtime : S

Signature

Sourcetype conn = Runtime.t
Sourcetype flow = Flow.t
Sourceval run : conn -> ?tags:Logs.Tag.set -> ?read_buffer_size:int -> ?upgrade:(flow -> unit) -> flow -> unit Miou.t

run conn ?read_buffer_size flow runs the given state-machine conn on top of flow.

read_buffer_size is the initial size of the bigstring where we accumulate what the peer sends us (it grows on demand); it should be H1.Config.read_buffer_size / H2.Config.read_buffer_size.