package httpcats

  1. Overview
  2. Docs
A simple HTTP client / server using h1, h2, and miou

Install

dune-project
 Dependency

Authors

Maintainers

Sources

httpcats-0.3.0.tbz
sha256=ff77d72ec8a294632e99757d1ae1a96073e6fb282d1c0e1e514b47b19976959d
sha512=0efc177c18cc74a8e24e6405331f716aeb780b528176b15c64b1e698cab0113cc25e30e0c9a075b51c1eb780c844734c8c930f9d18e351e73706d9c3d3738b85

doc/CHANGES.html

v0.3.0 (2026-05-06) Paris - France

  • Don't predate how we close underlying connection when we write something. It avoid a "double-close" (@dinosaure, #49)
  • breaking change Be able to specify a UNIX domain socket for listening (@theAlexes, #51)
  • Delete the rresult dependency on tests (@dinosaure, #54)
  • Close only when (httpcats) we create and bind a socket (and don't do that when the user pass a socket for us) (@theAlexes, @dinosaure, #53, #57)
  • Clean and fix our runtime (@dinosaure, #59, #61)

    Here we decided to trust the underlying state machine H{1,2}.{Server,Client}_connection.t to properly close a connection. When we close it, we Miou.cancel tasks (instead of Miou.await them). httpcats requires miou.0.6.0 (which provides Miou.take). When the Flow raises an exception, we report this exception to the state machine & it should stop everything.

  • breaking change Pass the conn value to the handler (@dinosaure, #60)

v0.2.1 (2026-03-25) Paris - France

  • Use Miou.Ownership to release correctly our resource in any cases (including the cancellation case) (@dinosaure, #47)
  • Replace assert false by failwith (@dinosaure, #47)
  • Improve performances (@dinosaure, #46) We use a pre-allocated buffer to read/write things into the given flow now We don't try to split bigarray to small strings We fixed a bit the way to stop a server

    A benchmark was made with wrk and compare httpcats, httpun+eio, vif and nginx. It is available here: https://robur-coop.github.io/httpcats/ The protocol of the benchmark is described into our file bench/PROTOCOL.md. The collected results from our machine is available into our file bench/BENCH.md. Implementations are available into the bench/ folder.

v0.2.0 (2026-02-19) Paris - France

  • Improve the OPAM file and the README.md (@geazi-anc, #39)
  • Split out the core of httpcats to be re-usable by unikernels (@dinosaure, #40)
  • Avoid a memory leak about logs (@dinosaure, #42)
  • Upgrade GitHub CI and ocamlformat (@dinosaure, #43)

v0.1.0 (2025-08-09) Paris - France

  • Add the support of websocket (@swrup & @dinosaure)
  • Improve the Httpcats.request and handle cookies and redirections well (@dinosaure)
  • Improve the runtime implement to process an HTTP communication (with http/1.1 & h2) (@dinosaure)
  • Improve the documentation (@dinosaure)

This changelog does not contain PRs referring to additions to httpcats, as they were produced with a quick iteration to finalise the release of httpcats.0.1.0.

v0.0.1 (2024-09-13) Paris - France

  • First release