Runtime.MakeSourceMake 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.
val run :
conn ->
?tags:Logs.Tag.set ->
?read_buffer_size:int ->
?upgrade:(flow -> unit) ->
flow ->
unit Miou.trun 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.