dpi-detector/.cargo
Kirill Minovsky f9c74c2967 build: vendor patched rustls, h2/compression features, release-local profile
`vendor/rustls` is upstream rustls 0.23.43 plus one hook: a ClientHello
profile override (`src/client/hello_profile.rs`) wired in through
`[patch.crates-io]`, so tokio-rustls, hyper and rustls-rustcrypto all
resolve to the same instance. Upstream gives no control over the ClientHello
(cipher list comes from the provider, extension order is randomized, browser
extensions are never emitted), and the ready-made impersonation crates are
either BoringSSL (C code, rules out the router targets) or pinned to an older
rustls. `exclude = ["vendor/rustls"]` keeps its upstream tests out of the
workspace; `PATCH.diff` reproduces the tree.

`brotli` + `zlib` let the profile advertise certificate compression and decode
what a server then sends; `ml-kem` + `x25519-dalek` back the pure-Rust
X25519MLKEM768 group the Firefox profile offers.

`.cargo/config.toml` pins rust-lld for x86_64-pc-windows-msvc (112 s -> 56 s
per fat-LTO relink here), and `[profile.release-local]` is the release knobs
minus whole-program LTO: 1.3 s per edit instead of 52 s, for iteration only
(it is not shippable, releases still build with `--release`).
2026-09-13 19:41:43 +03:00
..
config.toml build: vendor patched rustls, h2/compression features, release-local profile 2026-09-13 19:41:43 +03:00