about summary refs log tree commit diff
path: root/tvix
diff options
context:
space:
mode:
Diffstat (limited to 'tvix')
-rw-r--r--tvix/Cargo.lock27
-rw-r--r--tvix/Cargo.nix37
-rw-r--r--tvix/Cargo.toml120
-rw-r--r--tvix/build/Cargo.toml33
-rw-r--r--tvix/castore/Cargo.toml149
-rw-r--r--tvix/cli/Cargo.toml32
-rw-r--r--tvix/eval/Cargo.toml66
-rw-r--r--tvix/eval/builtin-macros/Cargo.toml4
-rw-r--r--tvix/glue/Cargo.toml66
-rw-r--r--tvix/nar-bridge/Cargo.toml50
-rw-r--r--tvix/nix-compat-derive-tests/Cargo.toml15
-rw-r--r--tvix/nix-compat-derive/Cargo.toml17
-rw-r--r--tvix/nix-compat/Cargo.toml68
-rw-r--r--tvix/serde/Cargo.toml4
-rw-r--r--tvix/store/Cargo.toml104
-rw-r--r--tvix/tracing/Cargo.toml34
16 files changed, 451 insertions, 375 deletions
diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock
index 457f20c27889..7f92e885c3d1 100644
--- a/tvix/Cargo.lock
+++ b/tvix/Cargo.lock
@@ -67,15 +67,16 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.6.11"
+version = "0.6.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
@@ -87,27 +88,27 @@ checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -662,9 +663,9 @@ dependencies = [
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
 
 [[package]]
 name = "concurrent-queue"
@@ -1769,6 +1770,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "is_terminal_polyfill"
+version = "1.70.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
+
+[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix
index 3af515954fdf..4cb07f1a13e0 100644
--- a/tvix/Cargo.nix
+++ b/tvix/Cargo.nix
@@ -362,9 +362,9 @@ rec {
       };
       "anstream" = rec {
         crateName = "anstream";
-        version = "0.6.11";
+        version = "0.6.15";
         edition = "2021";
-        sha256 = "19dndamalavhjwp4i74k8hdijcixb7gsfa6ycwyc1r8xn6y1wbkf";
+        sha256 = "09nm4qj34kiwgzczdvj14x7hgsb235g4sqsay3xsz7zqn4d5rqb4";
         dependencies = [
           {
             name = "anstyle";
@@ -390,6 +390,10 @@ rec {
             packageId = "colorchoice";
           }
           {
+            name = "is_terminal_polyfill";
+            packageId = "is_terminal_polyfill";
+          }
+          {
             name = "utf8parse";
             packageId = "utf8parse";
           }
@@ -413,9 +417,9 @@ rec {
       };
       "anstyle-parse" = rec {
         crateName = "anstyle-parse";
-        version = "0.2.3";
+        version = "0.2.5";
         edition = "2021";
-        sha256 = "134jhzrz89labrdwxxnjxqjdg06qvaflj1wkfnmyapwyldfwcnn7";
+        sha256 = "1jy12rvgbldflnb2x7mcww9dcffw1mx22nyv6p3n7d62h0gdwizb";
         libName = "anstyle_parse";
         dependencies = [
           {
@@ -433,9 +437,9 @@ rec {
       };
       "anstyle-query" = rec {
         crateName = "anstyle-query";
-        version = "1.0.2";
+        version = "1.1.1";
         edition = "2021";
-        sha256 = "0j3na4b1nma39g4x7cwvj009awxckjf3z2vkwhldgka44hqj72g2";
+        sha256 = "0aj22iy4pzk6mz745sfrm1ym14r0y892jhcrbs8nkj7nqx9gqdkd";
         libName = "anstyle_query";
         dependencies = [
           {
@@ -449,9 +453,9 @@ rec {
       };
       "anstyle-wincon" = rec {
         crateName = "anstyle-wincon";
-        version = "3.0.2";
+        version = "3.0.4";
         edition = "2021";
-        sha256 = "19v0fv400bmp4niqpzxnhg83vz12mmqv7l2l8vi80qcdxj0lpm8w";
+        sha256 = "1y2pkvsrdxbcwircahb4wimans2pzmwwxad7ikdhj5lpdqdlxxsv";
         libName = "anstyle_wincon";
         dependencies = [
           {
@@ -2228,9 +2232,9 @@ rec {
       };
       "colorchoice" = rec {
         crateName = "colorchoice";
-        version = "1.0.0";
+        version = "1.0.2";
         edition = "2021";
-        sha256 = "1ix7w85kwvyybwi2jdkl3yva2r2bvdcc3ka2grjfzfgrapqimgxc";
+        sha256 = "1h18ph538y8yjmbpaf8li98l0ifms2xmh3rax9666c5qfjfi3zfk";
 
       };
       "concurrent-queue" = rec {
@@ -5579,6 +5583,14 @@ rec {
         ];
 
       };
+      "is_terminal_polyfill" = rec {
+        crateName = "is_terminal_polyfill";
+        version = "1.70.1";
+        edition = "2021";
+        sha256 = "1kwfgglh91z33kl0w5i338mfpa3zs0hidq5j4ny4rmjwrikchhvr";
+        features = { };
+        resolvedDefaultFeatures = [ "default" ];
+      };
       "itertools 0.10.5" = rec {
         crateName = "itertools";
         version = "0.10.5";
@@ -6615,6 +6627,7 @@ rec {
           {
             name = "futures";
             packageId = "futures";
+            usesDefaultFeatures = false;
           }
           {
             name = "itertools";
@@ -14777,6 +14790,7 @@ rec {
           {
             name = "futures";
             packageId = "futures";
+            usesDefaultFeatures = false;
           }
           {
             name = "hyper-util";
@@ -15324,7 +15338,6 @@ rec {
           {
             name = "clap";
             packageId = "clap";
-            usesDefaultFeatures = false;
           }
           {
             name = "data-encoding";
@@ -15333,6 +15346,7 @@ rec {
           {
             name = "futures";
             packageId = "futures";
+            usesDefaultFeatures = false;
           }
           {
             name = "magic";
@@ -15562,6 +15576,7 @@ rec {
           {
             name = "futures";
             packageId = "futures";
+            usesDefaultFeatures = false;
           }
           {
             name = "hyper-util";
diff --git a/tvix/Cargo.toml b/tvix/Cargo.toml
index 175125e152d6..556a2719c030 100644
--- a/tvix/Cargo.toml
+++ b/tvix/Cargo.toml
@@ -39,6 +39,126 @@ members = [
 # https://github.com/rust-lang/rust-clippy/issues/12281
 blocks_in_conditions = "allow"
 
+[workspace.dependencies]
+anyhow = "1.0.86"
+async-compression = "0.4.12"
+async-process = "2.2.4"
+async-stream = "0.3.5"
+async-tempfile = "0.4.0"
+axum = "0.7.5"
+bigtable_rs = { git = "https://github.com/liufuyang/bigtable_rs", rev = "1818355a5373a5bc2c84287e3a4e3807154ac8ef" }
+bitflags = "2.6.0"
+blake3 = "1.5.4"
+bstr = "1.10.0"
+bytes = "1.7.1"
+clap = "4.5.16"
+codemap = "0.1.3"
+codemap-diagnostic = "0.1.2"
+count-write = "0.1.0"
+criterion = "0.5"
+data-encoding = "2.6.0"
+digest = "0.10.7"
+dirs = "4.0.0"
+ed25519 = "2.2.3"
+ed25519-dalek = "2.1.1"
+enum-primitive-derive = "0.3.0"
+erased-serde = "0.4.5"
+expect-test = "1.5.0"
+fastcdc = "3.1.0"
+fuse-backend-rs = "0.11.0"
+futures = { version = "0.3.30", default-features = false }
+genawaiter = { version = "0.99.1", default-features = false }
+glob = "0.3.1"
+hex-literal = "0.4.1"
+http = "1.1.0"
+hyper-util = "0.1.7"
+indicatif = "0.17.8"
+itertools = "0.12.1"
+lazy_static = "1.5.0"
+lexical-core = "0.8.5"
+libc = "0.2.158"
+lru = "0.12.4"
+magic = "0.16.2"
+md-5 = "0.10.6"
+mimalloc = "0.1.43"
+nix = "0.27.1"
+nohash-hasher = "0.2.0"
+nom = "7.1.3"
+num-traits = "0.2.19"
+object_store = "0.10.2"
+opentelemetry = "0.24.0"
+opentelemetry-http = "0.13.0"
+opentelemetry-otlp = "0.17.0"
+opentelemetry_sdk = "0.24.1"
+os_str_bytes = "6.6"
+parking_lot = "0.12.3"
+path-clean = "0.1"
+petgraph = "0.6.5"
+pin-project = "1.1"
+pin-project-lite = "0.2.14"
+pretty_assertions = "1.4.0"
+proc-macro2 = "1.0.86"
+proptest = { version = "1.5.0", default-features = false }
+prost = "0.13.1"
+prost-build = "0.13.1"
+quote = "1.0.37"
+redb = "2.1.2"
+regex = "1.10.6"
+reqwest = { version = "0.12.7", default-features = false }
+reqwest-middleware = "0.3.3"
+reqwest-tracing = { version = "0.5.3", default-features = false }
+rnix = "0.11.0"
+rowan = "*"
+rstest = "0.19.0"
+rstest_reuse = "0.6.0"
+rustc-hash = "2.0.0"
+rustyline = "10.1.1"
+serde = "1.0.209"
+serde_json = "1.0"
+serde_qs = "0.12.0"
+serde_tagged = "0.3.0"
+serde_with = "3.9.0"
+sha1 = "0.10.6"
+sha2 = "0.10.8"
+sled = "0.34.7"
+smol_str = "0.2.2"
+tabwriter = "1.4"
+tempfile = "3.12.0"
+test-strategy = "0.2.1"
+thiserror = "1.0.63"
+threadpool = "1.8.1"
+tokio = "1.39.3"
+tokio-listener = "0.4.3"
+tokio-retry = "0.3.0"
+tokio-stream = "0.1.15"
+tokio-tar = "0.3.1"
+tokio-test = "0.4.4"
+tokio-util = "0.7.11"
+tonic = "0.12.2"
+tonic-build = "0.12.2"
+tonic-health = { version = "0.12.2", default-features = false }
+tonic-reflection = "0.12.2"
+tower = "0.4.13"
+tower-http = "0.5.2"
+tracing = "0.1.40"
+tracing-indicatif = "0.3.6"
+tracing-opentelemetry = "0.25.0"
+tracing-subscriber = "0.3.18"
+tracing-tracy = "0.11.2"
+trybuild = "1.0.99"
+url = "2.5.2"
+vhost = "0.6"
+vhost-user-backend = "0.8"
+virtio-bindings = "0.2.2"
+virtio-queue = "0.7"
+vm-memory = "0.10"
+vmm-sys-util = "0.11"
+vu128 = "1.1.0"
+walkdir = "2.5.0"
+wu-manber = { git = "https://github.com/tvlfyi/wu-manber.git" }
+xattr = "1.3.1"
+zstd = "0.13.2"
+
 # Add a profile to all targets that enables release optimisations, but
 # retains debug symbols. This is great for use with
 # benchmarking/profiling tools.
diff --git a/tvix/build/Cargo.toml b/tvix/build/Cargo.toml
index 6fd00b5b39a3..b9073b7ff61a 100644
--- a/tvix/build/Cargo.toml
+++ b/tvix/build/Cargo.toml
@@ -4,34 +4,31 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-bytes = "1.7.1"
-clap = { version = "4.5", features = ["derive", "env"] }
-itertools = "0.12.1"
-prost = "0.13.1"
-thiserror = "1.0.63"
-tokio = { version = "1.39.3" }
-tokio-listener = { version = "0.4.3", features = [ "tonic012" ] }
-tonic = { version = "0.12.2", features = ["tls", "tls-roots"] }
+bytes = { workspace = true }
+clap = { workspace = true, features = ["derive", "env"] }
+itertools = { workspace = true }
+prost = { workspace = true }
+thiserror = { workspace = true }
+tokio = { workspace = true }
+tokio-listener = { workspace = true, features = ["tonic012"] }
+tonic = { workspace = true, features = ["tls", "tls-roots"] }
 tvix-castore = { path = "../castore" }
 tvix-tracing = { path = "../tracing" }
-tracing = "0.1.40"
-url = "2.5.2"
-mimalloc = "0.1.43"
-
-[dependencies.tonic-reflection]
-optional = true
-version = "0.12.2"
+tracing = { workspace = true }
+url = { workspace = true }
+mimalloc = { workspace = true }
+tonic-reflection = { workspace = true, optional = true }
 
 [build-dependencies]
-prost-build = "0.13.1"
-tonic-build = "0.12.2"
+prost-build = { workspace = true }
+tonic-build = { workspace = true }
 
 [features]
 default = []
 tonic-reflection = ["dep:tonic-reflection", "tvix-castore/tonic-reflection"]
 
 [dev-dependencies]
-rstest = "0.19.0"
+rstest = { workspace = true }
 
 [lints]
 workspace = true
diff --git a/tvix/castore/Cargo.toml b/tvix/castore/Cargo.toml
index 0744a370f58e..b6752ae25af5 100644
--- a/tvix/castore/Cargo.toml
+++ b/tvix/castore/Cargo.toml
@@ -4,103 +4,68 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-async-compression = { version = "0.4.12", features = ["tokio", "zstd"]}
-async-stream = "0.3.5"
-async-tempfile = "0.4.0"
-blake3 = { version = "1.5.4", features = ["rayon", "std", "traits-preview"] }
-bstr = "1.10.0"
-bytes = "1.7.1"
-data-encoding = "2.6.0"
-digest = "0.10.7"
-fastcdc = { version = "3.1.0", features = ["tokio"] }
-futures = "0.3.30"
-lazy_static = "1.5.0"
-object_store = { version = "0.10.2", features = ["http"] }
-parking_lot = "0.12.3"
-pin-project-lite = "0.2.14"
-prost = "0.13.1"
-sled = { version = "0.34.7" }
-thiserror = "1.0.63"
-tokio-stream = { version = "0.1.15", features = ["fs", "net"] }
-tokio-util = { version = "0.7.11", features = ["io", "io-util", "codec"] }
-tokio-tar = "0.3.1"
-tokio = { version = "1.39.3", features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
-tonic = "0.12.2"
-tower = "0.4.13"
-tracing = "0.1.40"
-tracing-indicatif = "0.3.6"
+async-compression = { workspace = true, features = ["tokio", "zstd"] }
+async-stream = { workspace = true }
+async-tempfile = { workspace = true }
+blake3 = { workspace = true, features = ["rayon", "std", "traits-preview"] }
+bstr = { workspace = true }
+bytes = { workspace = true }
+data-encoding = { workspace = true }
+digest = { workspace = true }
+fastcdc = { workspace = true, features = ["tokio"] }
+futures = { workspace = true }
+lazy_static = { workspace = true }
+object_store = { workspace = true, features = ["http"] }
+parking_lot = { workspace = true }
+pin-project-lite = { workspace = true }
+prost = { workspace = true }
+sled = { workspace = true }
+thiserror = { workspace = true }
+tokio-stream = { workspace = true, features = ["fs", "net"] }
+tokio-util = { workspace = true, features = ["io", "io-util", "codec"] }
+tokio-tar = { workspace = true }
+tokio = { workspace = true, features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
+tonic = { workspace = true }
+tower = { workspace = true }
+tracing = { workspace = true }
+tracing-indicatif = { workspace = true }
 tvix-tracing = { path = "../tracing", features = ["tonic"] }
-url = "2.5.2"
-walkdir = "2.5.0"
-zstd = "0.13.2"
-serde = { version = "1.0.209", features = [ "derive" ] }
-serde_with = "3.9.0"
-serde_qs = "0.12.0"
-petgraph = "0.6.5"
-erased-serde = "0.4.5"
-serde_tagged = "0.3.0"
-hyper-util = "0.1.7"
-redb = "2.1.2"
-
-[dependencies.bigtable_rs]
-optional = true
-# https://github.com/liufuyang/bigtable_rs/pull/86
-git = "https://github.com/liufuyang/bigtable_rs"
-rev = "1818355a5373a5bc2c84287e3a4e3807154ac8ef"
-
-[dependencies.fuse-backend-rs]
-optional = true
-version = "0.11.0"
-
-[dependencies.libc]
-optional = true
-version = "0.2.158"
-
-[dependencies.threadpool]
-version = "1.8.1"
-optional = true
-
-[dependencies.tonic-reflection]
-optional = true
-version = "0.12.2"
-
-[dependencies.vhost]
-optional = true
-version = "0.6"
-
-[dependencies.vhost-user-backend]
-optional = true
-version = "0.8"
-
-[dependencies.virtio-queue]
-optional = true
-version = "0.7"
-
-[dependencies.vm-memory]
-optional = true
-version = "0.10"
-
-[dependencies.vmm-sys-util]
-optional = true
-version = "0.11"
-
-[dependencies.virtio-bindings]
-optional = true
-version = "0.2.2"
+url = { workspace = true }
+walkdir = { workspace = true }
+zstd = { workspace = true }
+serde = { workspace = true, features = ["derive"] }
+serde_with = { workspace = true }
+serde_qs = { workspace = true }
+petgraph = { workspace = true }
+erased-serde = { workspace = true }
+serde_tagged = { workspace = true }
+hyper-util = { workspace = true }
+redb = { workspace = true }
+bigtable_rs = { workspace = true, optional = true }
+fuse-backend-rs = { workspace = true, optional = true }
+libc = { workspace = true, optional = true }
+threadpool = { workspace = true, optional = true }
+tonic-reflection = { workspace = true, optional = true }
+vhost = { workspace = true, optional = true }
+vhost-user-backend = { workspace = true, optional = true }
+virtio-queue = { workspace = true, optional = true }
+vm-memory = { workspace = true, optional = true }
+vmm-sys-util = { workspace = true, optional = true }
+virtio-bindings = { workspace = true, optional = true }
 
 [build-dependencies]
-prost-build = "0.13.1"
-tonic-build = "0.12.2"
+prost-build = { workspace = true }
+tonic-build = { workspace = true }
 
 [dev-dependencies]
-async-process = "2.2.4"
-rstest = "0.19.0"
-tempfile = "3.12.0"
-tokio-retry = "0.3.0"
-hex-literal = "0.4.1"
-rstest_reuse = "0.6.0"
-xattr = "1.3.1"
-serde_json = "*"
+async-process = { workspace = true }
+rstest = { workspace = true }
+tempfile = { workspace = true }
+tokio-retry = { workspace = true }
+hex-literal = { workspace = true }
+rstest_reuse = { workspace = true }
+xattr = { workspace = true }
+serde_json = { workspace = true }
 
 [features]
 default = ["cloud"]
diff --git a/tvix/cli/Cargo.toml b/tvix/cli/Cargo.toml
index 9b8bd8c92217..27cd5a6b395c 100644
--- a/tvix/cli/Cargo.toml
+++ b/tvix/cli/Cargo.toml
@@ -15,25 +15,23 @@ tvix-store = { path = "../store", default-features = false, features = []}
 tvix-eval = { path = "../eval" }
 tvix-glue = { path = "../glue" }
 tvix-tracing = { path = "../tracing" }
-bytes = "1.7.1"
-clap = { version = "4.5", features = ["derive", "env"] }
-dirs = "4.0.0"
-rustyline = "10.1.1"
-rnix = "0.11.0"
-rowan = "*"
-smol_str = "0.2.2"
-thiserror = "1.0.63"
-tokio = "1.39.3"
-tracing = "0.1.40"
-tracing-indicatif = "0.3.6"
-rustc-hash = "2.0.0"
-mimalloc = "0.1.43"
-
-[dependencies.wu-manber]
-git = "https://github.com/tvlfyi/wu-manber.git"
+bytes = { workspace = true }
+clap = { workspace = true, features = ["derive", "env"] }
+dirs = { workspace = true }
+rustyline = { workspace = true }
+rnix = { workspace = true }
+rowan = { workspace = true }
+smol_str = { workspace = true }
+thiserror = { workspace = true }
+tokio = { workspace = true }
+tracing = { workspace = true }
+tracing-indicatif = { workspace = true }
+rustc-hash = { workspace = true }
+mimalloc = { workspace = true }
+wu-manber = { workspace = true }
 
 [dev-dependencies]
-expect-test = "1.5.0"
+expect-test = { workspace = true }
 
 [features]
 default = []
diff --git a/tvix/eval/Cargo.toml b/tvix/eval/Cargo.toml
index bb6b04bb6ca5..c99bea4f7125 100644
--- a/tvix/eval/Cargo.toml
+++ b/tvix/eval/Cargo.toml
@@ -8,42 +8,42 @@ name = "tvix_eval"
 
 [dependencies]
 builtin-macros = { path = "./builtin-macros", package = "tvix-eval-builtin-macros" }
-bytes = "1.7.1"
-bstr = { version = "1.10.0", features = ["serde"] }
-codemap = "0.1.3"
-codemap-diagnostic = "0.1.2"
-dirs = "4.0.0"
-genawaiter = { version = "0.99.1", default-features = false }
-itertools = "0.12.1"
-lazy_static = "1.5.0"
-lexical-core = { version = "0.8.5", features = ["format", "parse-floats"] }
-os_str_bytes = { version = "6.6", features = ["conversions"] }
-path-clean = "0.1"
-proptest = { version = "1.5.0", default-features = false, features = ["std", "alloc", "tempfile"], optional = true }
-regex = "1.10.6"
-rnix = "0.11.0"
-rowan = "*" # pinned by rnix
-serde = { version = "1.0", features = [ "rc", "derive" ] }
-serde_json = "1.0"
-smol_str = "0.2.2"
-tabwriter = "1.4"
-test-strategy = { version = "0.2.1", optional = true }
+bytes = { workspace = true }
+bstr = { workspace = true, features = ["serde"] }
+codemap = { workspace = true }
+codemap-diagnostic = { workspace = true }
+dirs = { workspace = true }
+genawaiter = { workspace = true }
+itertools = { workspace = true }
+lazy_static = { workspace = true }
+lexical-core = { workspace = true, features = ["format", "parse-floats"] }
+os_str_bytes = { workspace = true, features = ["conversions"] }
+path-clean = { workspace = true }
+proptest = { workspace = true, features = ["std", "alloc", "tempfile"], optional = true }
+regex = { workspace = true }
+rnix = { workspace = true }
+rowan = { workspace = true } # pinned by rnix
+serde = { workspace = true, features = ["rc", "derive"] }
+serde_json = { workspace = true }
+smol_str = { workspace = true }
+tabwriter = { workspace = true }
+test-strategy = { workspace = true, optional = true }
 toml = "0.6.0"
-sha2 = "0.10.8"
-sha1 = "0.10.6"
-md-5 = "0.10.6"
-data-encoding = "2.6.0"
-rustc-hash = "2.0.0"
-nohash-hasher = "0.2.0"
-vu128 = "1.1.0"
+sha2 = { workspace = true }
+sha1 = { workspace = true }
+md-5 = { workspace = true }
+data-encoding = { workspace = true }
+rustc-hash = { workspace = true }
+nohash-hasher = { workspace = true }
+vu128 = { workspace = true }
 
 [dev-dependencies]
-criterion = "0.5"
-itertools = "0.12.1"
-mimalloc = "0.1.43"
-pretty_assertions = "1.4.0"
-rstest = "0.19.0"
-tempfile = "3.12.0"
+criterion = { workspace = true }
+itertools = { workspace = true }
+mimalloc = { workspace = true }
+pretty_assertions = { workspace = true }
+rstest = { workspace = true }
+tempfile = { workspace = true }
 
 [features]
 default = ["impure", "arbitrary", "nix_tests"]
diff --git a/tvix/eval/builtin-macros/Cargo.toml b/tvix/eval/builtin-macros/Cargo.toml
index 0171bb9ae62d..0696d742b342 100644
--- a/tvix/eval/builtin-macros/Cargo.toml
+++ b/tvix/eval/builtin-macros/Cargo.toml
@@ -6,8 +6,8 @@ edition = "2021"
 
 [dependencies]
 syn = { version = "1.0.109", features = ["full", "parsing", "printing", "visit", "visit-mut", "extra-traits"] }
-quote = "1.0.37"
-proc-macro2 = "1"
+quote = { workspace = true }
+proc-macro2 = { workspace = true }
 
 [lib]
 proc-macro = true
diff --git a/tvix/glue/Cargo.toml b/tvix/glue/Cargo.toml
index a43f174c47c8..bb522dceb902 100644
--- a/tvix/glue/Cargo.toml
+++ b/tvix/glue/Cargo.toml
@@ -4,48 +4,46 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-async-compression = { version = "0.4.12", features = ["tokio", "gzip", "bzip2", "xz"]}
-bstr = "1.10.0"
-bytes = "1.7.1"
-data-encoding = "2.6.0"
-futures = "0.3.30"
-magic = "0.16.2"
+async-compression = { workspace = true, features = ["tokio", "gzip", "bzip2", "xz"] }
+bstr = { workspace = true }
+bytes = { workspace = true }
+data-encoding = { workspace = true }
+futures = { workspace = true }
+magic = { workspace = true }
 nix-compat = { path = "../nix-compat" }
-pin-project = "1.1"
-reqwest = { version = "0.12.7", features = ["rustls-tls-native-roots"], default-features = false }
+pin-project = { workspace = true }
+reqwest = { workspace = true, features = ["rustls-tls-native-roots"] }
 tvix-build = { path = "../build", default-features = false, features = []}
 tvix-eval = { path = "../eval" }
 tvix-castore = { path = "../castore" }
 tvix-store = { path = "../store", default-features = false, features = []}
 tvix-tracing = { path = "../tracing" }
-tracing = "0.1.40"
-tracing-indicatif = "0.3.6"
-tokio = "1.39.3"
-tokio-tar = "0.3.1"
-tokio-util = { version = "0.7.11", features = ["io", "io-util", "compat"] }
-thiserror = "1.0.63"
-serde = "1.0.209"
-serde_json = "1.0"
-sha2 = "0.10.8"
-sha1 = "0.10.6"
-md-5 = "0.10.6"
-url = "2.5.2"
-walkdir = "2.5.0"
-clap = { version = "4.5.16", default-features = false }
-
-[dependencies.wu-manber]
-git = "https://github.com/tvlfyi/wu-manber.git"
+tracing = { workspace = true }
+tracing-indicatif = { workspace = true }
+tokio = { workspace = true }
+tokio-tar = { workspace = true }
+tokio-util = { workspace = true, features = ["io", "io-util", "compat"] }
+thiserror = { workspace = true }
+serde = { workspace = true }
+serde_json = { workspace = true }
+sha2 = { workspace = true }
+sha1 = { workspace = true }
+md-5 = { workspace = true }
+url = { workspace = true }
+walkdir = { workspace = true }
+clap = { workspace = true }
+wu-manber = { workspace = true }
 
 [dev-dependencies]
-criterion = { version = "0.5", features = ["html_reports"] }
-hex-literal = "0.4.1"
-lazy_static = "1.5.0"
-mimalloc = "0.1.43"
-nix = { version = "0.27.1", features = [ "fs" ] }
-pretty_assertions = "1.4.0"
-rstest = "0.19.0"
-tempfile = "3.12.0"
-tokio-test = "0.4.4"
+criterion = { workspace = true, features = ["html_reports"] }
+hex-literal = { workspace = true }
+lazy_static = { workspace = true }
+mimalloc = { workspace = true }
+nix = { workspace = true, features = ["fs"] }
+pretty_assertions = { workspace = true }
+rstest = { workspace = true }
+tempfile = { workspace = true }
+tokio-test = { workspace = true }
 
 [features]
 default = ["nix_tests"]
diff --git a/tvix/nar-bridge/Cargo.toml b/tvix/nar-bridge/Cargo.toml
index b4069bfb468f..6ca0479a9a81 100644
--- a/tvix/nar-bridge/Cargo.toml
+++ b/tvix/nar-bridge/Cargo.toml
@@ -4,43 +4,43 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-axum = { version = "0.7.5", features = ["http2"] }
-tower = "0.4.13"
-tower-http = { version = "0.5", features = ["trace"] }
-bytes = "1.7.1"
-clap = { version = "4.5", features = ["derive", "env"] }
-data-encoding = "2.6.0"
-futures = "0.3.30"
-itertools = "0.12.1"
-prost = "0.13.1"
+axum = { workspace = true, features = ["http2"] }
+tower = { workspace = true }
+tower-http = { workspace = true, features = ["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"] }
-thiserror = "1.0.63"
-tokio = { version = "1.39.3" }
-tokio-listener = { version = "0.4.3", features = [ "axum07", "clap", "multi-listener", "sd_listen" ] }
-tokio-util = { version = "0.7.11", features = ["io", "io-util", "compat"] }
-tonic = { version = "0.12.2", features = ["tls", "tls-roots"] }
+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"] }
 tvix-castore = { path = "../castore" }
 tvix-store = { path = "../store" }
 tvix-tracing = { path = "../tracing", features = ["tonic", "axum"] }
-tracing = "0.1.40"
-tracing-subscriber = "0.3.18"
-url = "2.5.2"
-serde = { version = "1.0.209", features = ["derive"] }
-lru = "0.12.4"
-parking_lot = "0.12.3"
-mimalloc = "0.1.43"
+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 = "0.13.1"
-tonic-build = "0.12.2"
+prost-build = { workspace = true }
+tonic-build = { workspace = true }
 
 [features]
 default = ["otlp"]
 otlp = ["tvix-tracing/otlp"]
 
 [dev-dependencies]
-hex-literal = "0.4.1"
-rstest = "0.19.0"
+hex-literal = { workspace = true }
+rstest = { workspace = true }
 
 [lints]
 workspace = true
diff --git a/tvix/nix-compat-derive-tests/Cargo.toml b/tvix/nix-compat-derive-tests/Cargo.toml
index 6ec716392c03..e69cb10e4fea 100644
--- a/tvix/nix-compat-derive-tests/Cargo.toml
+++ b/tvix/nix-compat-derive-tests/Cargo.toml
@@ -7,11 +7,12 @@ edition = "2021"
 compile-tests = []
 
 [dev-dependencies]
-hex-literal = "0.4.1"
-pretty_assertions = "1.4.0"
-rstest = "0.19.0"
-tokio-test = "0.4.4"
-trybuild = "1.0.99"
+hex-literal = { workspace = true }
+pretty_assertions = { workspace = true }
+rstest = { workspace = true }
+tokio-test = { workspace = true }
+trybuild = { workspace = true }
+tokio = { workspace = true, features = ["io-util", "macros"] }
 
 [dev-dependencies.nix-compat]
 version = "0.1.0"
@@ -21,7 +22,3 @@ features = ["test", "wire"]
 [dev-dependencies.nix-compat-derive]
 version = "0.1.0"
 path = "../nix-compat-derive"
-
-[dev-dependencies.tokio]
-version = "^1.39"
-features = ["io-util", "macros"]
diff --git a/tvix/nix-compat-derive/Cargo.toml b/tvix/nix-compat-derive/Cargo.toml
index 34b5b371fb8c..da6d6744e650 100644
--- a/tvix/nix-compat-derive/Cargo.toml
+++ b/tvix/nix-compat-derive/Cargo.toml
@@ -7,19 +7,16 @@ edition = "2021"
 proc-macro = true
 
 [dependencies]
-proc-macro2 = { version = "1.0.86",  features = ["proc-macro"] }
-quote = { version = "1.0.37", features = ["proc-macro"] }
+proc-macro2 = { workspace = true, features = ["proc-macro"] }
+quote = { workspace = true, features = ["proc-macro"] }
 syn = { version = "2.0.76", features = ["full", "extra-traits"] }
 
 [dev-dependencies]
-hex-literal = "0.4.1"
-pretty_assertions = "1.4.0"
-rstest = "0.19.0"
-tokio-test = "0.4.4"
-
-[dev-dependencies.tokio]
-version = "^1.39"
-features = ["io-util", "macros"]
+hex-literal = { workspace = true }
+pretty_assertions = { workspace = true }
+rstest = { workspace = true }
+tokio-test = { workspace = true }
+tokio = { workspace = true, features = ["io-util", "macros"] }
 
 [dev-dependencies.nix-compat]
 path = "../nix-compat"
diff --git a/tvix/nix-compat/Cargo.toml b/tvix/nix-compat/Cargo.toml
index eff15f0f3bd3..ac56bb59cab2 100644
--- a/tvix/nix-compat/Cargo.toml
+++ b/tvix/nix-compat/Cargo.toml
@@ -14,51 +14,41 @@ test = []
 default = ["async", "wire", "nix-compat-derive"]
 
 [dependencies]
-bitflags = "2.6.0"
-bstr = { version = "1.10.0", features = ["alloc", "unicode", "serde"] }
-data-encoding = "2.6.0"
-ed25519 = "2.2.3"
-ed25519-dalek = "2.1.1"
-enum-primitive-derive = "0.3.0"
-glob = "0.3.1"
-mimalloc = "0.1.43"
-nom = "7.1.3"
-num-traits = "0.2.19"
-serde = { version = "1.0", features = ["derive"] }
-serde_json = "1.0"
-sha2 = "0.10.8"
-thiserror = "1.0.63"
-tracing = "0.1.40"
-
-[dependencies.bytes]
-optional = true
-version = "1.7.1"
+bitflags = { workspace = true }
+bstr = { workspace = true, features = ["alloc", "unicode", "serde"] }
+data-encoding = { workspace = true }
+ed25519 = { workspace = true }
+ed25519-dalek = { workspace = true }
+enum-primitive-derive = { workspace = true }
+glob = { workspace = true }
+mimalloc = { workspace = true }
+nom = { workspace = true }
+num-traits = { workspace = true }
+serde = { workspace = true, features = ["derive"] }
+serde_json = { workspace = true }
+sha2 = { workspace = true }
+thiserror = { workspace = true }
+tracing = { workspace = true }
+bytes = { workspace = true, optional = true }
+tokio = { workspace = true, features = ["io-util", "macros"], optional = true }
+pin-project-lite = { workspace = true, optional = true }
 
 [dependencies.nix-compat-derive]
 path = "../nix-compat-derive"
 optional = true
 
-[dependencies.tokio]
-optional = true
-version = "1.39.3"
-features = ["io-util", "macros"]
-
-[dependencies.pin-project-lite]
-optional = true
-version = "0.2.14"
-
 [dev-dependencies]
-criterion = { version = "0.5", features = ["html_reports"] }
-futures = { version = "0.3.30", default-features = false, features = ["executor"] }
-hex-literal = "0.4.1"
-lazy_static = "1.5.0"
-mimalloc = "0.1.43"
-pretty_assertions = "1.4.0"
-rstest = "0.19.0"
-serde_json = "1.0"
-smol_str = "0.2.2"
-tokio-test = "0.4.4"
-zstd = "^0.13.2"
+criterion = { workspace = true, features = ["html_reports"] }
+futures = { workspace = true, features = ["executor"] }
+hex-literal = { workspace = true }
+lazy_static = { workspace = true }
+mimalloc = { workspace = true }
+pretty_assertions = { workspace = true }
+rstest = { workspace = true }
+serde_json = { workspace = true }
+smol_str = { workspace = true }
+tokio-test = { workspace = true }
+zstd = { workspace = true }
 
 [[bench]]
 name = "derivation_parse_aterm"
diff --git a/tvix/serde/Cargo.toml b/tvix/serde/Cargo.toml
index 90952f3e79fd..fc5f08a2ddcd 100644
--- a/tvix/serde/Cargo.toml
+++ b/tvix/serde/Cargo.toml
@@ -5,5 +5,5 @@ edition = "2021"
 
 [dependencies]
 tvix-eval = { path = "../eval" }
-serde = { version = "1.0", features = ["derive"] }
-bstr = { version = "1.10.0", features = ["serde"] }
+serde = { workspace = true, features = ["derive"] }
+bstr = { workspace = true, features = ["serde"] }
diff --git a/tvix/store/Cargo.toml b/tvix/store/Cargo.toml
index 552ef6f9165a..9d54ad1ea760 100644
--- a/tvix/store/Cargo.toml
+++ b/tvix/store/Cargo.toml
@@ -4,70 +4,62 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-anyhow = "1.0.86"
-async-compression = { version = "0.4.12", features = ["tokio", "bzip2", "gzip", "xz", "zstd"]}
-async-stream = "0.3.5"
-blake3 = { version = "1.5.4", features = ["rayon", "std"] }
-bstr = "1.10.0"
-bytes = "1.7.1"
-clap = { version = "4.5", features = ["derive", "env"] }
-count-write = "0.1.0"
-data-encoding = "2.6.0"
-futures = "0.3.30"
-lazy_static = "1.5.0"
+anyhow = { workspace = true }
+async-compression = { workspace = true, features = ["tokio", "bzip2", "gzip", "xz", "zstd"] }
+async-stream = { workspace = true }
+blake3 = { workspace = true, features = ["rayon", "std"] }
+bstr = { workspace = true }
+bytes = { workspace = true }
+clap = { workspace = true, features = ["derive", "env"] }
+count-write = { workspace = true }
+data-encoding = { workspace = true }
+futures = { workspace = true }
+lazy_static = { workspace = true }
 nix-compat = { path = "../nix-compat", features = ["async"] }
-pin-project-lite = "0.2.14"
-prost = "0.13.1"
-serde = { version = "1.0.209", features = [ "derive" ] }
-serde_json = "1.0"
-serde_with = "3.9.0"
-serde_qs = "0.12.0"
-sha2 = "0.10.8"
-sled = { version = "0.34.7" }
-thiserror = "1.0.63"
-tokio = { version = "1.39.3", features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
-tokio-listener = { version = "0.4.3", features = [ "clap", "multi-listener", "sd_listen", "tonic012" ] }
-tokio-stream = { version = "0.1.15", features = ["fs"] }
-tokio-util = { version = "0.7.11", features = ["io", "io-util", "compat"] }
-tonic = { version = "0.12.2", features = ["tls", "tls-roots"] }
-tower = "0.4.13"
-tower-http = { version = "0.5.2", features = ["trace"] }
+pin-project-lite = { workspace = true }
+prost = { workspace = true }
+serde = { workspace = true, features = ["derive"] }
+serde_json = { workspace = true }
+serde_with = { workspace = true }
+serde_qs = { workspace = true }
+sha2 = { workspace = true }
+sled = { workspace = true }
+thiserror = { workspace = true }
+tokio = { workspace = true, features = ["fs", "macros", "net", "rt", "rt-multi-thread", "signal"] }
+tokio-listener = { workspace = true, features = ["clap", "multi-listener", "sd_listen", "tonic012"] }
+tokio-stream = { workspace = true, features = ["fs"] }
+tokio-util = { workspace = true, features = ["io", "io-util", "compat"] }
+tonic = { workspace = true, features = ["tls", "tls-roots"] }
+tower = { workspace = true }
+tower-http = { workspace = true, features = ["trace"] }
 tvix-castore = { path = "../castore" }
-url = "2.5.2"
-walkdir = "2.5.0"
-reqwest = { version = "0.12.7", features = ["rustls-tls-native-roots", "stream"], default-features = false }
-reqwest-middleware = "0.3.3"
-lru = "0.12.4"
-parking_lot = "0.12.3"
+url = { workspace = true }
+walkdir = { workspace = true }
+reqwest = { workspace = true, features = ["rustls-tls-native-roots", "stream"] }
+reqwest-middleware = { workspace = true }
+lru = { workspace = true }
+parking_lot = { workspace = true }
 tvix-tracing = { path = "../tracing", features = ["tonic", "reqwest"] }
-tracing = "0.1.40"
-tracing-indicatif = "0.3.6"
-hyper-util = "0.1.7"
+tracing = { workspace = true }
+tracing-indicatif = { workspace = true }
+hyper-util = { workspace = true }
 toml = { version = "0.8.19", optional = true }
-tonic-health = { version = "0.12.2", default-features = false }
-redb = "2.1.2"
-mimalloc = "0.1.43"
-
-[dependencies.tonic-reflection]
-optional = true
-version = "0.12.2"
-
-[dependencies.bigtable_rs]
-optional = true
-# https://github.com/liufuyang/bigtable_rs/pull/86
-git = "https://github.com/liufuyang/bigtable_rs"
-rev = "1818355a5373a5bc2c84287e3a4e3807154ac8ef"
+tonic-health = { workspace = true }
+redb = { workspace = true }
+mimalloc = { workspace = true }
+tonic-reflection = { workspace = true, optional = true }
+bigtable_rs = { workspace = true, optional = true }
 
 [build-dependencies]
-prost-build = "0.13.1"
-tonic-build = "0.12.2"
+prost-build = { workspace = true }
+tonic-build = { workspace = true }
 
 [dev-dependencies]
-async-process = "2.2.4"
-rstest = "0.19.0"
-rstest_reuse = "0.6.0"
-tempfile = "3.12.0"
-tokio-retry = "0.3.0"
+async-process = { workspace = true }
+rstest = { workspace = true }
+rstest_reuse = { workspace = true }
+tempfile = { workspace = true }
+tokio-retry = { workspace = true }
 
 [features]
 default = ["cloud", "fuse", "otlp", "tonic-reflection"]
diff --git a/tvix/tracing/Cargo.toml b/tvix/tracing/Cargo.toml
index 15a37053005f..acd968eb231f 100644
--- a/tvix/tracing/Cargo.toml
+++ b/tvix/tracing/Cargo.toml
@@ -4,27 +4,27 @@ version = "0.1.0"
 edition = "2021"
 
 [dependencies]
-lazy_static = "1.5.0"
-tracing = { version = "0.1.40", features = ["max_level_trace", "release_max_level_debug"] }
-tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
-indicatif = "0.17.8"
-tracing-indicatif = "0.3.6"
-tokio = { version = "1.39.3" , features = ["sync", "rt"] }
-thiserror = "1.0.63"
+lazy_static = { workspace = true }
+tracing = { workspace = true, features = ["max_level_trace", "release_max_level_debug"] }
+tracing-subscriber = { workspace = true, features = ["env-filter"] }
+indicatif = { workspace = true }
+tracing-indicatif = { workspace = true }
+tokio = { workspace = true, features = ["sync", "rt"] }
+thiserror = { workspace = true }
 
-tracing-opentelemetry = { version = "0.25.0", optional = true }
-opentelemetry = { version = "0.24.0", optional = true }
-opentelemetry-otlp = { version = "0.17.0", optional = true }
-opentelemetry_sdk = { version = "0.24.1", features = ["rt-tokio"], optional = true }
-tracing-tracy = { version = "0.11.2", features = ["flush-on-exit"], optional = true }
-opentelemetry-http = { version = "0.13.0", optional = true }
+tracing-opentelemetry = { workspace = true, optional = true }
+opentelemetry = { workspace = true, optional = true }
+opentelemetry-otlp = { workspace = true, optional = true }
+opentelemetry_sdk = { workspace = true, features = ["rt-tokio"], optional = true }
+tracing-tracy = { workspace = true, features = ["flush-on-exit"], optional = true }
+opentelemetry-http = { workspace = true, optional = true }
 
-tonic = { version = "0.12.2", optional = true }
-http  = { version = "1.1.0", optional = true }
+tonic = { workspace = true, optional = true }
+http  = { workspace = true, optional = true }
 
-reqwest-tracing = { version = "0.5.3", default-features = false, optional = true }
+reqwest-tracing = { workspace = true, optional = true }
 
-axum = { version = "0.7.5", optional = true }
+axum = { workspace = true, optional = true }
 
 [features]
 default = []