- httpaf-lwt-unix: add support for HTTPS in the Lwt runtime, either via OpenSSL
or
ocaml-tls
(#2) - httpaf, httpaf-lwt, httpaf-lwt-unix, httpaf-mirage: Add a Mirage adapter (#3)
- Add an
esy.json
file (#6) - httpaf: Catch parsing errors and hand them to
error_handler
inServer_connection
(#4) - httpaf, httpaf-lwt, httpaf-lwt-unix, httpaf-async, httpaf-mirage: add support for persistent connections and pipelining in the client implementations (#5)
- httpaf, httpaf-lwt, httpaf-lwt-unix, httpaf-async, httpaf-mirage: add support
for switching protocols, e.g. to a WebSocket connection, via a new function
Reqd.respond_with_upgrade
(#8) - httpaf-lwt, httpaf-lwt-unix, httpaf-mirage: deduplicate interface code via a
common
Httpaf_lwt_intf
interface (#13) - httpaf-mirage: depend on
mirage-conduit
instead ofconduit-mirage
, effectively placing a lower bound of OCaml 4.07 on httpaf-mirage (#16) - httpaf-lwt-unix: replace the
dune
file (previously written in OCaml) with a(select)
form to avoid depending onocamlfind
(#18) - httpaf: Shutdown the writer after closing a non chunk-encoded request body on the client (#23)
- httpaf-mirage: Adapt to Mirage 3.7 interfaces.
httpaf_mirage
now requiresconduit-mirage
>= 2.0.2 andmirage-flow
>= 2.0.0 (#24) - httpaf, httpaf-lwt, httpaf-lwt-unix, httpaf-async, httpaf-mirage: after switching protocols, close the connection / file descriptors when the upgrade handler's returned promise resolves (#26)
- httpaf-lwt, httpaf-lwt-unix: split HTTPS functions in 2: one that sets up a
default secure connection and performs the TLS handshake / accept, and one
that is more "raw", i.e. leaves that responsibility to the caller. Also
exposes the
socket
type to make it easier to abstract over HTTP / HTTPS (#28) - httpaf-lwt, httpaf-lwt-unix, httpaf-mirage: Improve the
Httpaf_lwt.IO
interface, don't require areport_exn
function, only astate
function that returns the socket state (#30) - httpaf, httpaf-lwt, httpaf-async: Add support for upgrading connections on the client. (#31)
- httpaf: Fix the order of parsed request / response headers to match what it's advertised in the interface file. They are now served to the respective handlers in the original transmission order (#32)
- httpaf: Fix persistent connections getting stuck (reader never waking up)
when using
~flush_headers_immediately:true
in combination with an empty response body (#34). This is a fix for an issue opened in the upstream repo: inhabitedtype/httpaf#162 - httpaf-async: Add HTTPS support for the Async bindings (#35).
- httpaf: Fix upstream regression introduced in
inhabitedtype/httpaf#161
that caused
wake_up_writer
callback bookkeeping to be slightly wrong due to physical equality, producing runtime errors in cases where it shouldn't (#37). - httpaf-lwt: Close the communication channel after shutting down the client (#45)
- httpaf: Fix sending streaming error responses; in particular, allow sending chunk-encoded responses (#56)
- httpaf: handle read backpressure in server and client implementations (#59)
- httpaf-lwt, httpaf-lwt-unix: Use gluten to implement the Lwt-based runtimes (#63)
- httpaf-async: Use gluten to implement the Async runtimes (#69)
- httpaf: call error handler on read EOF if the entire body hasn't been received (#75)
- httpaf: Abort (chunked) responses correctly if an error is reported (#84, #86)
- Initial fork point 7de2d4ea