v2.0.0
HTTP v2.0.0
Breaking changes
HTTP.jl 2.0 is a breaking major release and a broad rewrite of the package internals and public API on top of Reseau.jl. The most important migration notes are:
- Julia 1.10 is now the minimum supported Julia version.
HTTP.requestand the verb helpers bufferResponse.body::Vector{UInt8}by default; useHTTP.openorresponse_streamfor streaming control.Response.status_codehas been renamed toResponse.status.RequestContextis now typed request state with cancellation, deadlines, metadata, and timeout fields. Dict-like metadata access remains as a migration aid, but new code should use the typed helpers and fields.- Client pooling, retries, TLS, proxying, cookies, and timeouts are now configured through
HTTP.Client,HTTP.Transport, and explicit keywords such asretry_if,request_timeout, andread_idle_timeoutinstead of the old layer stack,pool,retry_delays,retry_check,sslconfig, orsocket_type_tlsAPIs. - WebSocket-specific entrypoints now live under
HTTP.WebSockets, includingHTTP.WebSockets.open,HTTP.WebSockets.listen, andHTTP.WebSockets.listen!. HTTP.downloadis no longer HTTP.jl's dedicated download helper.HTTP.download(...)now resolves toBase.download; useDownloads.downloadfor simple downloads orHTTP.request(...; response_stream=io)/HTTP.openwhen HTTP.jl client configuration is needed.- Undocumented 1.x internals, including parser, layer-stack, connection-pool, HPACK, and low-level HTTP/2 implementation details, are no longer supported migration targets.
Highlights
- New Reseau-backed transport foundation for HTTP/1.1 and HTTP/2 client/server workflows.
- New core types around
Request,Response,Headers,Client,Transport,Stream, andRequestContext. - First-class HTTP/2 client/server support, Server-Sent Events, WebSockets, static file serving, request tracing, structured timeout phases, structured HTTP error types, and precompile/trim-oriented workloads.
- See
CHANGELOG.mdanddocs/src/guides/migration-1x.mdfor the full changelog and migration guide.
Merged pull requests: