66 lines
3.9 KiB
Markdown
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
|