dpi-detector/Cargo.toml
Kirill Minovsky a4e2f5a9b2 chore(release): v5.0.0-alpha.15
The round now presents one shape; a build that still resums four of its five
attempts must not be handed out as the same version as the one that does not.
2026-09-14 20:41:44 +03:00

81 lines
3.1 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/dpi-core",
"crates/dpi-detector",
]
# The vendored crates are patched upstream sources (see
# vendor/*/README-PATCH.md): rustls with a ClientHello-profile hook, h2 with the
# request shape a browser puts in its h2 preface, and hyper with the two preface
# settings a browser may leave out. They must NOT be workspace members (their
# tests/examples are upstream's, not ours).
exclude = ["vendor/rustls", "vendor/h2", "vendor/hyper"]
# Fingerprint hooks, applied through `[patch]` so that tokio-rustls /
# hyper / hyper-util / rustls-rustcrypto keep resolving to one instance of each.
[patch.crates-io]
rustls = { path = "vendor/rustls" }
h2 = { path = "vendor/h2" }
hyper = { path = "vendor/hyper" }
[workspace.package]
version = "5.0.0-alpha.15"
edition = "2021"
authors = ["runnin"]
license = "MIT"
[workspace.dependencies]
tokio = { version = "1.40", default-features = false, features = ["rt", "net", "time", "macros", "io-util", "sync", "process"] }
rustls = { version = "0.23", default-features = false, features = ["std", "tls12"] }
# RFC 8879 certificate decompression, decoder side only (see
# `dpi_core::net::cert_compression`): rustls's own `brotli`/`zlib` features would
# also link the matching *compressors*, which this tool never calls.
brotli-decompressor = "5"
zlib-rs = "0.6"
tokio-rustls = { version = "0.26", default-features = false, features = ["tls12"] }
rustls-rustcrypto = "0.0.2-alpha"
webpki-roots = "1.0"
hyper = { version = "1.4", default-features = false, features = ["client", "http1", "http2"] }
hyper-util = { version = "0.1", default-features = false, features = ["tokio", "client-legacy", "http1", "http2"] }
# Direct: the probes put a request shape (pseudo-header order, HEADERS priority)
# into the request, which only the patched h2 reads (vendor/h2/README-PATCH.md).
h2 = "0.4"
http-body-util = "0.1"
bytes = "1.7"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
parking_lot = "0.12"
serde_yaml = "0.9"
tracing = "0.1"
tracing-subscriber = "0.3"
clap = { version = "4.5", default-features = false, features = ["std", "derive", "help", "usage"] }
crossterm = { version = "0.29", features = ["libc", "event-stream"] }
futures-util = { version = "0.3", default-features = false }
comfy-table = { version = "7.1", default-features = false, features = ["custom_styling"] }
unicode-width = "0.2"
rand = "0.8"
ml-kem = "0.3"
x25519-dalek = "2"
thiserror = "1.0"
base64 = "0.22"
sha2 = "0.10"
rustix = { version = "0.38", default-features = false, features = ["use-libc", "termios", "stdio"] }
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
strip = true
# Local iteration: the codegen knobs of `release` minus the whole-program LTO
# pass, which alone costs ~1.5 min of every edit→build cycle here, plus parallel
# codegen units and rustc's incremental cache. ~7x faster rebuilds at ~46%
# larger binary (6.6 MiB vs 4.5 MiB), so releases still ship `--release`:
# cargo build --profile release-local --target x86_64-pc-windows-msvc -p dpi-detector
[profile.release-local]
inherits = "release"
lto = false
codegen-units = 16
opt-level = 2
incremental = true