content: [workspace]
  resolver = "3"
  members = [
      "crates/contracts/*/*",
      "crates/execution/*",
      "crates/farmer/*",
      "crates/node/*",
      "crates/shared/*",
  ]
  
  [workspace.dependencies]
  ab-aligned-buffer = { version = "0.0.1", path = "crates/shared/ab-aligned-buffer" }
  ab-archiving = { version = "0.1.0", path = "crates/shared/ab-archiving" }
  ab-blake3 = { version = "0.1.0", path = "crates/shared/ab-blake3" }
  ab-chacha8 = { version = "0.1.0", path = "crates/shared/ab-chacha8" }
  ab-client-api = { version = "0.0.1", path = "crates/node/ab-client-api" }
  ab-client-archiving = { version = "0.0.1", path = "crates/node/ab-client-archiving" }
  ab-client-block-authoring = { version = "0.0.1", path = "crates/node/ab-client-block-authoring" }
  ab-client-block-builder = { version = "0.0.1", path = "crates/node/ab-client-block-builder" }
  ab-client-block-import = { version = "0.0.1", path = "crates/node/ab-client-block-import" }
  ab-client-block-verification = { version = "0.0.1", path = "crates/node/ab-client-block-verification" }
  ab-client-consensus-common = { version = "0.0.1", path = "crates/node/ab-client-consensus-common" }
  ab-client-database = { version = "0.0.1", path = "crates/node/ab-client-database" }
  ab-cli-utils = { version = "0.0.1", path = "crates/shared/ab-cli-utils" }
  ab-direct-io-file = { version = "0.0.1", path = "crates/shared/ab-direct-io-file" }
  ab-client-proof-of-time = { version = "0.0.1", path = "crates/node/ab-client-proof-of-time" }
  ab-contracts-common = { version = "0.0.1", path = "crates/contracts/core/ab-contracts-common" }
  ab-contracts-macros = { version = "0.0.1", path = "crates/contracts/core/ab-contracts-macros" }
  ab-contracts-macros-impl = { version = "0.0.1", path = "crates/contracts/core/ab-contracts-macros-impl" }
  ab-contracts-standards = { version = "0.0.1", path = "crates/contracts/core/ab-contracts-standards" }
  ab-contracts-test-utils = { version = "0.0.1", path = "crates/contracts/core/ab-contracts-test-utils" }
  ab-core-primitives = { version = "0.1.0", path = "crates/shared/ab-core-primitives" }
  ab-data-retrieval = { version = "0.1.0", path = "crates/shared/ab-data-retrieval" }
  ab-erasure-coding = { version = "0.1.0", path = "crates/shared/ab-erasure-coding" }
  ab-farmer-components = { version = "0.1.0", path = "crates/farmer/ab-farmer-components" }
  ab-io-type = { version = "0.0.1", path = "crates/shared/ab-io-type" }
  ab-executor-native = { version = "0.0.1", path = "crates/execution/ab-executor-native" }
  ab-executor-slots = { version = "0.0.1", path = "crates/execution/ab-executor-slots" }
  ab-merkle-tree = { version = "0.0.1", path = "crates/shared/ab-merkle-tree" }
  ab-proof-of-space = { version = "0.1.0", path = "crates/shared/ab-proof-of-space" }
  ab-proof-of-time = { version = "0.1.0", path = "crates/shared/ab-proof-of-time" }
  ab-system-contract-address-allocator = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-address-allocator" }
  ab-system-contract-block = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-block" }
  ab-system-contract-code = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-code" }
  ab-system-contract-native-token = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-native-token" }
  ab-system-contract-simple-wallet-base = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-simple-wallet-base" }
  ab-system-contract-state = { version = "0.0.1", path = "crates/contracts/system/ab-system-contract-state" }
  ab-trivial-type-derive = { version = "0.0.1", path = "crates/shared/ab-trivial-type-derive" }
  aes = "0.9.0-rc.1"
  anyhow = { version = "1.0.99", default-features = false }
  async-lock = { version = "3.4.1", default-features = false }
  async-trait = "0.1.89"
  # TODO: Migrate to maintained backon
  backoff = "0.4.0"
  bech32 = { version = "0.11.0", default-features = false }
  bitvec = "1.0.1"
  blake3 = { version = "1.8.2", default-features = false }
  bytes = { version = "1.10.1", default-features = false }
  bytesize = { version = "2.1.0", default-features = false }
  cargo-gpu = { git = "https://github.com/Rust-GPU/cargo-gpu", rev = "91286dd92ddadaa8f3992cca964f3928ca896402", default-features = false }
  chacha20 = { version = "0.10.0-rc.2", default-features = false }
  clap = "4.5.47"
  const_format = "0.2.34"
  core_affinity = "0.8.3"
  cpufeatures = "0.2.17"
  criterion = { version = "0.7.0", default-features = false }
  derive_more = { version = "2.0.1", default-features = false }
  # TODO: Switch to ed25519-dalek with RFC8032 / NIST validation criteria instead once
  #  https://github.com/dalek-cryptography/curve25519-dalek/issues/626 is resolved
  ed25519-zebra = { version = "4.1.0", default-features = false }
  enum-map = "2.7.3"
  # TODO: Not using fs4 on purpose due to https://github.com/al8n/fs4-rs/issues/15
  fs2 = "0.4.3"
  futures = { version = "0.3.31", default-features = false, features = ["async-await"] }
  halfbrown = "0.3.0"
  hex = { version = "0.4.3", default-features = false }
  ident_case = "1.0.1"
  libc = "0.2.175"
  no-panic = "0.1.35"
  once_cell = { version = "1.21.3", default-features = false }
  parity-scale-codec = { version = "3.7.5", default-features = false }
  parking_lot = "0.12.4"
  proc-macro2 = "1.0.101"
  quote = "1.0.40"
  rand = { version = "0.9.2", default-features = false }
  rand_chacha = { version = "0.9.0", default-features = false }
  rand_core = { version = "0.9.3", default-features = false }
  rayon = "1.11.0"
  rclite = "0.3.0"
  # TODO: Switch to upstream 3.1.1+ when released to include https://github.com/AndersTrier/reed-solomon-simd/pull/63
  reed-solomon-simd = { version = "3.1.0", git = "https://github.com/AndersTrier/reed-solomon-simd", rev = "b745c5076109149e5c624d88c995c98ccc11f6bd", default-features = false }
  replace_with = { version = "0.1.8", default-features = false, features = ["nightly"] }
  scale-info = { version = "2.11.6", default-features = false }
  schnellru = "0.2.4"
  schnorrkel = { version = "0.11.5", default-features = false }
  send-future = "0.1.0"
  seq-macro = "0.3.6"
  serde = { version = "1.0.225", default-features = false }
  serde-big-array = "0.5.1"
  sha2 = { version = "0.11.0-rc.2", default-features = false }
  smallvec = { version = "1.15.1", features = ["union"] }
  spirv-std = { git = "https://github.com/Rust-GPU/rust-gpu", rev = "de03e8d8c997c68aed1a950863c0d79ba9bd8c72" }
  stable_deref_trait = { version = "1.2.0", default-features = false }
  strum = { version = "0.27.2", default-features = false, features = ["derive"] }
  syn = "2.0.106"
  tempfile = "3.22.0"
  thiserror = { version = "2.0.16", default-features = false }
  thread-priority = "3.0.0"
  tokio = { version = "1.47.1", default-features = false }
  tracing = "0.1.41"
  tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
  wgpu = { version = "26.0.1", default-features = false, features = ["metal", "spirv", "vulkan"] }
  windows = { version = "0.62.0", features = ["Win32_Storage_FileSystem"] }
  yoke = { version = "0.8.0", default-features = false }
  
  # The following libraries have a major impact on developement experience and need to be compiled with optimizations even
  # in debug builds
  [profile.dev.package]
  ab-archiving = { opt-level = 3 }
  ab-proof-of-space = { opt-level = 3 }
  ab-proof-of-space-gpu = { opt-level = 3 }
  ab-proof-of-time = { opt-level = 3 }
  blake3 = { opt-level = 3 }
  reed-solomon-simd = { opt-level = 3 }
  
  [profile.production]
  inherits = "release"
  lto = "fat"
  
  [profile.contract]
  inherits = "production"
  strip = "symbols"
  
  [patch.crates-io]
  # TODO: Remove once 1.8.3 is released with https://github.com/BLAKE3-team/BLAKE3/pull/469
  blake3 = { version = "1.8.2", git = "https://github.com/BLAKE3-team/BLAKE3", rev = "c7f0d216e6fc834b742456b39546c9835baa1277" }
  
  [workspace.lints.rust]
  rust_2018_idioms = "warn"
  missing_debug_implementations = "warn"
  # `spirv` target architecture is not upstream yet
  unexpected_cfgs = { level = "allow", check-cfg = ['cfg(target_arch, values("spirv"))'], priority = 1 }
  