aaf258f61e
Rename read_nar to ingest_nar, and have it use the async nar reader version, and the ingest_entries machinery. This means we can now drop all code dealing with manually assembling castore nodes. Update our consumer, NixHTTPPathInfoService to use the new API. As we now accept an AsyncRead, we don't need to do any blocking here anymore, and can use the same async-compression crate as in the fetching logic (and support some more compression formats out of the box). Change-Id: I8646d20bd8603f8da47b5c84bc9e4ac236eb7f1a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11580 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com>
80 lines
2.5 KiB
TOML
80 lines
2.5 KiB
TOML
[package]
|
|
name = "tvix-store"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.68"
|
|
async-compression = { version = "0.4.9", features = ["tokio", "bzip2", "gzip", "xz", "zstd"]}
|
|
async-stream = "0.3.5"
|
|
blake3 = { version = "1.3.1", features = ["rayon", "std"] }
|
|
bstr = "1.6.0"
|
|
bytes = "1.4.0"
|
|
clap = { version = "4.0", features = ["derive", "env"] }
|
|
count-write = "0.1.0"
|
|
data-encoding = "2.3.3"
|
|
futures = "0.3.30"
|
|
lazy_static = "1.4.0"
|
|
nix-compat = { path = "../nix-compat", features = ["async"] }
|
|
pin-project-lite = "0.2.13"
|
|
prost = "0.12.1"
|
|
opentelemetry = { version = "0.21.0", optional = true}
|
|
opentelemetry-otlp = { version = "0.14.0", optional = true }
|
|
opentelemetry_sdk = { version = "0.21.0", features = ["rt-tokio"], optional = true}
|
|
serde = { version = "1.0.197", features = [ "derive" ] }
|
|
serde_json = "1.0"
|
|
serde_with = "3.7.0"
|
|
serde_qs = "0.12.0"
|
|
sha2 = "0.10.6"
|
|
sled = { version = "0.34.7" }
|
|
thiserror = "1.0.38"
|
|
tokio = { version = "1.32.0", features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
|
|
tokio-listener = { version = "0.3.2", features = [ "tonic011" ] }
|
|
tokio-stream = { version = "0.1.14", features = ["fs"] }
|
|
tokio-util = { version = "0.7.9", features = ["io", "io-util", "compat"] }
|
|
tonic = { version = "0.11.0", features = ["tls", "tls-roots"] }
|
|
tower = "0.4.13"
|
|
tracing = "0.1.37"
|
|
tracing-opentelemetry = "0.22.0"
|
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "json"] }
|
|
tvix-castore = { path = "../castore" }
|
|
url = "2.4.0"
|
|
walkdir = "2.4.0"
|
|
async-recursion = "1.0.5"
|
|
reqwest = { version = "0.11.22", features = ["rustls-tls-native-roots", "stream"], default-features = false }
|
|
|
|
[dependencies.tonic-reflection]
|
|
optional = true
|
|
version = "0.11.0"
|
|
|
|
[dependencies.bigtable_rs]
|
|
optional = true
|
|
# https://github.com/liufuyang/bigtable_rs/pull/72
|
|
git = "https://github.com/flokli/bigtable_rs"
|
|
rev = "0af404741dfc40eb9fa99cf4d4140a09c5c20df7"
|
|
|
|
[build-dependencies]
|
|
prost-build = "0.12.1"
|
|
tonic-build = "0.11.0"
|
|
|
|
[dev-dependencies]
|
|
async-process = "2.1.0"
|
|
rstest = "0.19.0"
|
|
rstest_reuse = "0.6.0"
|
|
tempfile = "3.3.0"
|
|
tokio-retry = "0.3.0"
|
|
|
|
[features]
|
|
default = ["cloud", "fuse", "otlp", "tonic-reflection"]
|
|
cloud = [
|
|
"dep:bigtable_rs",
|
|
"tvix-castore/cloud"
|
|
]
|
|
fuse = ["tvix-castore/fuse"]
|
|
otlp = ["dep:opentelemetry", "dep:opentelemetry-otlp", "dep:opentelemetry_sdk"]
|
|
tonic-reflection = ["dep:tonic-reflection", "tvix-castore/tonic-reflection"]
|
|
virtiofs = ["tvix-castore/virtiofs"]
|
|
# Whether to run the integration tests.
|
|
# Requires the following packages in $PATH:
|
|
# cbtemulator, google-cloud-bigtable-tool
|
|
integration = []
|