ocaml http/1, http/2 and websocket client and server library
1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8## [0.3.1] - 2026-01-06 9 10### Fixed 11 12- Reduced opam package size from 87MB to ~200KB by using `git archive` for tarball creation 13 14## [0.2.1] - 2026-01-04 15 16### Fixed 17 18- **Server port binding now fails correctly when port is already in use.** Previously, `reuse_port` defaulted to `true`, which enabled `SO_REUSEPORT` and allowed multiple processes to silently bind to the same port. This caused confusing behavior where a new server would start successfully but only receive a fraction of connections. Now `reuse_port` defaults to `false`, and binding to an already-used port will fail with a clear error. 19 20### Changed 21 22- `Server.default_config.reuse_port` now defaults to `false` instead of `true`. 23- Users who intentionally want multiple processes sharing a port (for load balancing) can enable it explicitly via `{ config with reuse_port = true }`. 24 25## [0.2.0] - 2026-01-03 26 27### Added 28 29- Phoenix-style three-layer plug architecture 30- Pipeline module for reusable plug collections 31- Endpoint module for global plug entry point 32- Scoped authentication with `Plug.Auth` pipeline 33 34### Changed 35 36- Refactored plug system to match Phoenix conventions 37- Improved router with per-route plug support 38 39## [0.1.0] - Initial Release 40 41### Added 42 43- HTTP/1.1 and HTTP/2 client and server 44- WebSocket support (RFC 6455) 45- Server-Sent Events (SSE) 46- Lock-free pub/sub messaging 47- Connection pooling 48- TLS support via tls-eio 49- Static file serving 50- Gzip/zstd compression 51- CORS, CSRF, rate limiting plugs 52- CLI tools: `hc` (client) and `hs` (file server)