mirror of
https://github.com/Runnin4ik/dpi-detector.git
synced 2026-10-19 09:23:17 +00:00
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.
81 lines
3.1 KiB
TOML
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
|