Files
RustProxy/docs/REFERENCES.md
T
2026-10-03 00:27:09 +01:00

66 lines
3.9 KiB
Markdown

# Implementation references
Primary specifications and library documentation consulted while implementing the
transport code. These references are not evidence that this source package was built
or tested successfully against a resolved dependency graph.
## HTTP and WebSocket
- HTTP semantics and intermediary header handling: https://www.rfc-editor.org/rfc/rfc9110
- HTTP/1.1 messaging: https://www.rfc-editor.org/rfc/rfc9112
- HTTP/2: https://www.rfc-editor.org/rfc/rfc9113
- WebSocket handshake and framing: https://www.rfc-editor.org/rfc/rfc6455
- Extended CONNECT bootstrap semantics: https://www.rfc-editor.org/rfc/rfc8441
- WebSocket over HTTP/3: https://www.rfc-editor.org/rfc/rfc9220
- hpx-h3 2.5.19: https://docs.rs/hpx-h3/2.5.19/h3/
- Hyper HTTP/2 server builder: https://docs.rs/hyper/latest/hyper/server/conn/http2/struct.Builder.html
- Hyper upgrades: https://docs.rs/hyper/latest/hyper/upgrade/index.html
- hyper-util legacy client: https://docs.rs/hyper-util/latest/hyper_util/client/legacy/struct.Client.html
- Resolver interface: https://docs.rs/hyper-util/latest/hyper_util/client/legacy/connect/dns/index.html
- Tokio bounded-buffer bidirectional copying: https://docs.rs/tokio/latest/tokio/io/fn.copy_bidirectional.html
## TLS
- HTTPS connector builder: https://docs.rs/hyper-rustls/latest/hyper_rustls/struct.HttpsConnectorBuilder.html
- rustls signing key/certificate validation: https://docs.rs/rustls/latest/rustls/sign/struct.CertifiedKey.html
- rustls server certificate resolver: https://docs.rs/rustls/latest/rustls/server/trait.ResolvesServerCert.html
- SNI certificate bindings: https://docs.rs/rustls/latest/rustls/server/struct.ResolvesServerCertUsingSni.html
- Development certificate generation: https://docs.rs/rcgen/0.13.2/rcgen/fn.generate_simple_self_signed.html
## Persistence and security
- SQLx SQLite connection model: https://docs.rs/sqlx/latest/sqlx/struct.SqliteConnection.html
- SQLite online backup API: https://www.sqlite.org/backup.html
- OWASP SSRF guidance: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html
- OWASP password storage: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
- Prometheus instrumentation practices: https://prometheus.io/docs/practices/instrumentation/
The next Docker stages must use actual published port bindings and reconciliation,
not infer exposure from EXPOSE alone. Start with the official engine networking and
events documentation, and record the API versions actually tested in that release.
## Cache and compression
- HTTP caching semantics and Age/freshness: https://www.rfc-editor.org/rfc/rfc9111
- Cache-Status response field: https://www.rfc-editor.org/rfc/rfc9211
- tower-http streaming compression: https://docs.rs/tower-http/latest/tower_http/compression/
- Compression implementation API: https://docs.rs/crate/tower-http/latest/source/src/compression/service.rs
- Compression predicates: https://docs.rs/tower-http/latest/tower_http/compression/predicate/
References describe upstream APIs/specifications, not successful compilation of the
unresolved 0.2.0 dependency graph. Consult the exact Cargo.lock when generated.
## Vhosts, keepalive and negotiation
- Client pool timers, idle limits and HTTP/2 pings: https://docs.rs/hyper-util/latest/hyper_util/client/legacy/struct.Builder.html
- DNS Name parsing interface: https://docs.rs/hyper-util/latest/hyper_util/client/legacy/connect/dns/struct.Name.html
- TLS ALPN server configuration: https://docs.rs/rustls/latest/rustls/server/struct.ServerConfig.html
- HTTP strict transport security: https://www.rfc-editor.org/rfc/rfc6797
The library documentation is reference material, not proof that a particular future
resolved graph compiles. The reported tower-http 0.6.11 `SizeAbove::new(u16)` call
has been removed entirely; the custom predicate uses the generic Predicate API.
- Generic compression predicate API: https://docs.rs/tower-http/latest/tower_http/compression/trait.Predicate.html