content: # This Cargo file is a workspace configuration as per
  # https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
  #
  # We add this file to get a coherent set of dependencies across Tvix
  # crates by sharing a Cargo.lock. This is necessary because of the
  # currently limited support for Rust builds in Nix.
  #
  # Note that this explicitly does *not* mean that //tvix should be
  # considered "one project": This is simply a workaround for a
  # technical limitation and it should be our aim to remove this
  # workspace file and make the subprojects independent.
  #
  # Note also that CI targets for actual projects should *not* be tied
  # to //tvix, but to its subprojects. A potential file at
  # //tvix/default.nix should likely *not* expose anything other than
  # extra steps or other auxiliary targets.
  
  [workspace]
  resolver = "2"
  
  members = [
    "cli",
    "eval",
    "eval/builtin-macros",
    "glue",
    "nix-compat",
    "nix-compat-derive",
    "nix-compat-derive-tests",
    "serde",
    "simstore",
  ]
  
  [workspace.lints.clippy]
  # Allow blocks_in_conditions due to false positives with #[tracing::instrument(…)]:
  # https://github.com/rust-lang/rust-clippy/issues/12281
  blocks_in_conditions = "allow"
  
  [workspace.dependencies]
  bitflags = "2.6.0"
  bstr = "1.10.0"
  bytes = "1.7.1"
  clap = "4.5.16"
  codemap = "0.1.3"
  codemap-diagnostic = "0.1.2"
  criterion = "0.5"
  data-encoding = "2.6.0"
  dirs = "4.0.0"
  ed25519 = "2.2.3"
  ed25519-dalek = "2.1.1"
  expect-test = "1.5.0"
  futures = "0.3.30"
  genawaiter = { version = "0.99.1", default-features = false }
  hex-literal = "0.4.1"
  itertools = "0.12.1"
  lexical-core = "0.8.5"
  md-5 = "0.10.6"
  mimalloc = "0.1.43"
  nix = "0.27.1"
  nohash-hasher = "0.2.0"
  nom = "8.0"
  os_str_bytes = "6.6"
  path-clean = "0.1"
  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 }
  quote = "1.0.37"
  regex = "1.10.6"
  rnix = "0.11.0"
  rowan = "0.15" # keep in sync with rnix
  rstest = "0.19.0"
  rustc-hash = "2.0.0"
  rustyline = "10.1.1"
  serde = "1.0.209"
  serde_json = "1.0"
  sha1 = "0.10.6"
  sha2 = "0.10.8"
  smol_str = "0.2.2"
  tabwriter = "1.4"
  tempfile = "3.12.0"
  test-strategy = "0.2.1"
  thiserror = "2.0"
  tokio = "1.39.3"
  tokio-test = "0.4.4"
  tracing = "0.1.40"
  trybuild = "1.0.99"
  url = "2.5.2"
  walkdir = "2.5.0"
  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.
  [profile.release-with-debug]
  inherits = "release"
  debug = true
  