h2: surface (body) write failures through flush (#247)
Body.Writer.flush now takes a callback of the type ([ `Written | ` Closed] -> unit), informing the caller whether the previous writes have been written or whether the output channel was closed.Eio_unix.stream_socket_ty, allowing the use of mock sockets (#236)httpaf, use httpun-types instead (#243)String.unsafe_get when the string length is known (#244)Body.Reader.t immediately upon calling Body.Reader.schedule_read (#238)~flush_headers_immediately:false and empty request bodies (#186)H2.Reqd.error_code part of the public interface (#188)~request_method argument to H2.Method.body_length (#190) (@jonathanjameswatson)RST_STREAM frame (#187, #194)H2_mirage.Server_with_conduit (#154)flush_headers_immediately on the client and default to false. This means that h2 will wait for the first request body bytes to be scheduled and batch HEADERS and DATA frames when sending requests (#163, #164)Body.t into Body.Writer.t and Body.Reader.t (#165)seeded_hash to scheduler.ml (#168)Angstrom.skip_many. Fixes a memory leak in long-running connections e.g. gRPC (#172)h2-async (#174)trailers_handler to Connection.request (#146)Settings module API (#113)RST_STREAM frame after sending a complete response (#119).socket type to make it easier to abstract over HTTP / HTTPS (#84)H2_lwt.IO interface, don't require a report_exn function, only a state function that returns the socket state (#85)content-length header and no DATA frames (#89)Request.body_length and Response.body_length (#90)Close report from the runtime (#92)mirage-conduit instead of conduit-mirage, effectively placing a lower bound of OCaml 4.07 on the next release of h2-mirage (#67)dune file (previously written in OCaml) with a (select) form to avoid depending on ocamlfind (#68)H2_lwt_intf and expose less (internal) types (#65)Client.is_closed (#65)Headers.remove that prevented removing the last header pair (#73)Headers.replace that prevented replacing the last header pair (#76)h2_mirage now requires conduit-mirage >= 2.0.2 and mirage-flow >= 2.0.0 (#77)Server and Client functors that take a Mirage_flow_lwt.S module as an argument (#37)RST_STREAM frame (#42)result package (#18)CONNECT requests as malformed (#32, #34)