content: [workspace]
  resolver = "2"
  exclude = ["examples/rust"]
  members = [
    "api/test",
    "tools/tvm_api_gen",
    "tools/update_trusted_blocks",
    "tools/tl_code_gen",
    "tvm_abi",
    "tvm_api",
    "tvm_assembler",
    "tvm_block",
    "tvm_block_json",
    "tvm_cli",
    "tvm_client",
    "tvm_client_processing",
    "tvm_common",
    "tvm_debugger",
    "tvm_executor",
    "tvm_sdk",
    "tvm_struct",
    "tvm_tl_codegen",
    "tvm_types",
    "tvm_vm",
  ]
  [workspace.package]
  version = "2.23.6"
  
  rust-version = "1.76.0"
  
  authors = ["TVM Labs <hello@tvmlabs.io>"]
  repository = "https://github.com/tvmlabs/tvm-sdk"
  edition = "2021"
  license = "GPL-3.0-or-later"
  license-file = "LICENSE"
  
  [workspace.lints.rust]
  # aim to have fmt::Debug implemented for all our public types
  missing_debug_implementations = "warn"
  
  [profile.profiling]
  debug = 1
  inherits = 'release'
  
  [profile.dev]
  # Must always use panic = "abort" to avoid needing to define the unstable eh_personality lang item.
  panic = "abort"
  # Enable only a small amount of optimization in debug mode
  opt-level = 1
  
  # Enable high optimizations for dependencies, but not for our code:
  [profile.dev.package."*"]
  opt-level = 3
  
  [profile.release]
  opt-level = "s"   # Optimize for size.
  lto = true        # Enable Link Time Optimization
  codegen-units = 1 # Reduce number of codegen units to increase optimizations.
  panic = "abort"   # Abort on panic
  strip = true      # Automatically strip symbols from the binary.
  
  [profile.test]
  # IMPORTANT! because with "abort" it will complain https://github.com/rust-lang/cargo/issues/6313
  panic = "unwind"
  
  [workspace.dependencies]
  anyhow = "1.0.79"
  async-trait = "0.1.77"
  base64 = "0.22.1"
  blst = "0.3.11"
  byteorder = "1.5.0"
  chrono = "0.4"
  clap = { version = "4.4", features = ["derive"] }
  crc = "3.0.1"
  diffy = "0.3.0"
  dirs = "5.0.1"
  ed25519 = "2.2.3"
  ed25519-dalek = "2.1.0"
  extfmt = "0.1.1"
  failure = "0.1.8"
  futures = "0.3"
  hex = "0.4.3"
  hex-literal = "0.4.1"
  json5 = "0.4.1"
  lazy_static = "1.4.0"
  lockfree = { git = "https://github.com/tvmlabs/lockfree" }
  log = "0.4.20"
  num = "0.4.1"
  num-bigint = "0.4.4"
  num-derive = "0.4.1"
  num-traits = "0.2.18"
  proc-macro2 = "1.0.78"
  quote = "1.0.35"
  rand = "0.8.5"
  regex = "1.10.3"
  reqwest = { version = "0.12.12", default-features = false, features = [
    "rustls-tls-webpki-roots",
  ] }
  serde = "1.0.197"
  serde_derive = "1.0.197"
  serde_json = "1.0.114"
  serde_repr = "0.1.18"
  sha2 = "0.10.8"
  similar = "2.4.0"
  smallvec = "1.13.1"
  thiserror = "1.0.56"
  tokio = { default-features = false, version = "1.36.0" }
  wasmtime = "36.0.2"
  wasmtime-wasi = "36.0.2"
  wasmtime-wasi-io = "36.0.2"
  zstd = "0.13.0"
  #
  tvm_abi = { path = "./tvm_abi" }
  tvm_api = { path = "./tvm_api" }
  tvm_assembler = { path = "./tvm_assembler" }
  tvm_block = { path = "./tvm_block" }
  tvm_block_json = { path = "./tvm_block_json" }
  tvm_cli = { path = "./tvm_cli" }
  tvm_client = { path = "./tvm_client", default-features = false }
  tvm_client_processing = { path = "./tvm_client_processing" }
  tvm_debugger = { path = "./tvm_debugger" }
  tvm_executor = { path = "./tvm_executor" }
  tvm_sdk = { path = "./tvm_sdk" }
  tvm_struct = { path = "./tvm_struct" }
  tvm_types = { path = "./tvm_types" }
  tvm_vm = { path = "./tvm_vm" }
  
  [workspace.dependencies.tokio-tungstenite]
  version = "0.26.2"
  