tvl-depot/tvix/nar-bridge/Cargo.toml
Florian Klink f6aee3534b feat(tvix/nar-bridge): support zstd content-encoding
We previously didn't handle compression in nar-bridge, and left it up to
a fronting reverse proxy.

However, at least nginx with http2 enabled pins each connection to a
single core, causing compression to be limited by the throughput of a
single CPU.

Change-Id: Ia11c2ff5c012192b25eb8ad05dae5542a2d2f777
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12834
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Reviewed-by: Jörg Thalheim <joerg@thalheim.io>
2024-11-24 18:34:04 +00:00

51 lines
1.7 KiB
TOML

[package]
name = "nar-bridge"
version = "0.1.0"
edition = "2021"
[dependencies]
axum = { workspace = true, features = ["http2"] }
axum-extra = { workspace = true }
axum-range = { workspace = true }
tower = { workspace = true }
tower-http = { workspace = true, features = ["compression-zstd", "trace"] }
bytes = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
data-encoding = { workspace = true }
futures = { workspace = true }
itertools = { workspace = true }
prost = { workspace = true }
nix-compat = { path = "../nix-compat", features = ["async"] }
opentelemetry = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
tokio-listener = { workspace = true, features = ["axum07", "clap", "multi-listener", "sd_listen"] }
tokio-util = { workspace = true, features = ["io", "io-util", "compat"] }
tonic = { workspace = true, features = ["tls", "tls-roots"] }
tower-otel-http-metrics = { workspace = true, optional = true }
tvix-castore = { path = "../castore" }
tvix-store = { path = "../store" }
tvix-tracing = { path = "../tracing", features = ["tonic", "axum"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
url = { workspace = true }
serde = { workspace = true, features = ["derive"] }
lru = { workspace = true }
parking_lot = { workspace = true }
mimalloc = { workspace = true }
[build-dependencies]
prost-build = { workspace = true }
tonic-build = { workspace = true }
[features]
default = ["otlp"]
otlp = ["tvix-tracing/otlp", "tower-otel-http-metrics"]
xp-store-composition-cli = ["tvix-store/xp-composition-cli"]
[dev-dependencies]
hex-literal = { workspace = true }
rstest = { workspace = true }
[lints]
workspace = true