Skip to content

Commit 45f44bc

Browse files
committed
docs(scope): document deferred Go parity areas
1 parent e4b7f68 commit 45f44bc

4 files changed

Lines changed: 38 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
9+
### Changed
10+
- Documented the intentionally deferred Go-parity areas for the 2.x release
11+
line, including HTTP/2 server push, `Pusher`, `ResponseController` /
12+
hijack-style control APIs, full `httptrace` parity, and full `net/url` /
13+
`ServeMux` parity.
914

1015
## [v2.0.0] - 2026-03-18
1116
### Changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,22 @@ cookies, multipart forms, retries, and proxy-aware transports for Julia.
2727

2828
Current package compat targets Julia `1.10` and later.
2929

30+
## Scope and Deferred Go Parity
31+
32+
`HTTP.jl` 2.x borrows heavily from Go's `net/http` design, but it is not a
33+
drop-in clone of every Go API or feature.
34+
35+
The current release intentionally defers:
36+
37+
- HTTP/2 server push and a `Pusher`-style surface
38+
- Go `ResponseController` / hijack-style server-control APIs
39+
- full `httptrace` parity beyond the documented `HTTP.ClientTrace` hooks
40+
- full `net/url` and `ServeMux` feature parity
41+
42+
These are explicit scope decisions for the 2.x release line rather than known
43+
bugs in the documented client, server, streaming, proxy, HTTP/2, SSE, and
44+
WebSocket APIs.
45+
3046
## Contributing and Questions
3147

3248
Contributions are very welcome, as are feature requests and suggestions. Please open an

docs/src/guides/protocols.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,19 @@ Use these higher-level APIs for ordinary HTTP/2 traffic:
7171

7272
HPACK tables, HTTP/2 frame structs, and direct connection/session types are
7373
internal implementation details rather than part of the documented public API.
74+
75+
## Intentional Go Parity Gaps
76+
77+
`HTTP.jl` 2.x borrows ideas from Go's `net/http`, but it does not aim to
78+
surface every Go API or compatibility point.
79+
80+
The current release intentionally defers:
81+
82+
- HTTP/2 server push and any `Pusher`-style server API
83+
- Go `ResponseController` / hijack-style response-control APIs
84+
- full `httptrace` parity beyond the documented `HTTP.ClientTrace` hooks
85+
- full `net/url` and `ServeMux` feature parity
86+
87+
Treat these as explicit scope decisions for the current release, not accidental
88+
regressions in the supported client, server, HTTP/2, or WebSocket features
89+
documented here.

docs/src/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,4 @@ String(resp.body)
7777
- Request and response bodies are explicit types instead of loosely typed byte blobs.
7878
- Client/server internals follow a more explicit state-machine design, which makes retries, proxying, streaming, and HTTP/2 behavior easier to reason about.
7979
- Most wire-level HTTP/2 and HPACK details are implementation details rather than part of the documented public API.
80+
- `HTTP.jl` is not a drop-in clone of Go's `net/http`; see the Protocols guide for the intentionally deferred Go-parity areas in the current release.

0 commit comments

Comments
 (0)