/ Cargo.toml
Cargo.toml
  1  [workspace]
  2  members = [
  3      "crypto/aead",
  4      "crypto/derive-secret",
  5      "crypto/hkdf",
  6      "crypto/tbs",
  7      "crypto/tpe",
  8      "devimint",
  9      "docs",
 10      "fedimint-api-client",
 11      "fedimint-bip39",
 12      "fedimint-bitcoind",
 13      "fedimint-build",
 14      "fedimint-cli",
 15      "fedimint-client",
 16      "fedimint-client-wasm",
 17      "fedimint-core",
 18      "fedimint-dbtool",
 19      "fedimint-derive",
 20      "fedimint-eventlog",
 21      "fedimint-load-test-tool",
 22      "fedimint-logging",
 23      "fedimint-metrics",
 24      "fedimint-recoverytool",
 25      "fedimint-rocksdb",
 26      "fedimint-server",
 27      "fedimint-testing",
 28      "fedimint-testing-core",
 29      "fedimint-wasm-tests",
 30      "fedimintd",
 31      "fuzz",
 32      "gateway/cli",
 33      "gateway/integration_tests",
 34      "gateway/ln-gateway",
 35      "modules/fedimint-dummy-client",
 36      "modules/fedimint-dummy-common",
 37      "modules/fedimint-dummy-server",
 38      "modules/fedimint-dummy-tests",
 39      "modules/fedimint-empty-client",
 40      "modules/fedimint-empty-common",
 41      "modules/fedimint-empty-server",
 42      "modules/fedimint-ln-client",
 43      "modules/fedimint-ln-common",
 44      "modules/fedimint-ln-server",
 45      "modules/fedimint-ln-tests",
 46      "modules/fedimint-lnv2-client",
 47      "modules/fedimint-lnv2-common",
 48      "modules/fedimint-lnv2-server",
 49      "modules/fedimint-lnv2-tests",
 50      "modules/fedimint-meta-client",
 51      "modules/fedimint-meta-common",
 52      "modules/fedimint-meta-server",
 53      "modules/fedimint-meta-tests",
 54      "modules/fedimint-mint-client",
 55      "modules/fedimint-mint-common",
 56      "modules/fedimint-mint-server",
 57      "modules/fedimint-mint-tests",
 58      "modules/fedimint-unknown-common",
 59      "modules/fedimint-unknown-server",
 60      "modules/fedimint-wallet-client",
 61      "modules/fedimint-wallet-common",
 62      "modules/fedimint-wallet-server",
 63      "modules/fedimint-wallet-tests",
 64      "utils/portalloc"
 65  ]
 66  resolver = "2"
 67  
 68  [workspace.package]
 69  version = "0.6.0-alpha"
 70  
 71  [workspace.metadata]
 72  name = "fedimint"
 73  authors = ["The Fedimint Developers"]
 74  edition = "2021"
 75  description = "Fedimint is a prototype Federated Chaumian E-Cash Mint implementation, natively compatible with Bitcoin & the Lightning Network. This project is under heavy development, DO NOT USE WITH REAL FUNDS."
 76  documentation = "https://github.com/fedimint/fedimint/tree/master/docs"
 77  readme = "README.md"
 78  homepage = "https://fedimint.org"
 79  repository = "https://github.com/fedimint/fedimint"
 80  license-file = "LICENSE"
 81  keywords = ["bitcoin", "lightning", "chaumian", "e-cash", "federated"]
 82  
 83  [workspace.metadata.crane]
 84  name = "fedimint"
 85  
 86  [workspace.dependencies]
 87  anyhow = "1.0.94"
 88  aquamarine = "0.5.0"
 89  assert_matches = "1.5.0"
 90  async-stream = "0.3.6"
 91  async-trait = "0.1.83"
 92  axum = "0.7.9"
 93  base64 = "0.22.1"
 94  base64-url = "3.0.0"
 95  bcrypt = "0.16.0"
 96  bincode = "1.3.3"
 97  bitcoin = { version = "0.32.5", features = ["serde"] }
 98  bitcoincore-rpc = "0.19.0"
 99  bitcoin_hashes = "0.14.0"
100  bls12_381 = "0.8.0"
101  bytes = "1.9.0"
102  clap = { version = "4.5.23", features = ["derive", "env"] }
103  cln-rpc = { package = "fedimint-cln-rpc", version = "0.5.0" }
104  criterion = "0.5.1"
105  devimint = { path = "./devimint", version = "=0.6.0-alpha" }
106  erased-serde = "0.4"
107  esplora-client = { version = "0.10.0", default-features = false, features = [
108      "async-https-rustls",
109  ] }
110  fedimintd = { path = "./fedimintd", version = "=0.6.0-alpha" }
111  fedimint-aead = { path = "./crypto/aead", version = "=0.6.0-alpha" }
112  fedimint-api-client = { path = "./fedimint-api-client", version = "=0.6.0-alpha" }
113  fedimint-bip39 = { path = "./fedimint-bip39", version = "=0.6.0-alpha" }
114  fedimint-bitcoind = { path = "./fedimint-bitcoind", version = "=0.6.0-alpha" }
115  fedimint-build = { path = "./fedimint-build", version = "=0.6.0-alpha" }
116  fedimint-client = { path = "./fedimint-client", version = "=0.6.0-alpha" }
117  fedimint-core = { path = "./fedimint-core", version = "=0.6.0-alpha" }
118  fedimint-derive = { path = "./fedimint-derive", version = "=0.6.0-alpha" }
119  fedimint-derive-secret = { path = "./crypto/derive-secret", version = "=0.6.0-alpha" }
120  fedimint-dummy-client = { path = "./modules/fedimint-dummy-client", version = "=0.6.0-alpha" }
121  fedimint-dummy-common = { path = "./modules/fedimint-dummy-common", version = "=0.6.0-alpha" }
122  fedimint-dummy-server = { path = "./modules/fedimint-dummy-server", version = "=0.6.0-alpha" }
123  fedimint-empty-common = { path = "./modules/fedimint-empty-common", version = "=0.6.0-alpha" }
124  fedimint-eventlog = { path = "./fedimint-eventlog", version = "=0.6.0-alpha" }
125  fedimint-lnv2-client = { path = "./modules/fedimint-lnv2-client", version = "=0.6.0-alpha" }
126  fedimint-lnv2-common = { path = "./modules/fedimint-lnv2-common", version = "=0.6.0-alpha" }
127  fedimint-lnv2-server = { path = "./modules/fedimint-lnv2-server", version = "=0.6.0-alpha" }
128  fedimint-ln-client = { path = "./modules/fedimint-ln-client", version = "=0.6.0-alpha" }
129  fedimint-ln-common = { path = "./modules/fedimint-ln-common", version = "=0.6.0-alpha" }
130  fedimint-ln-server = { path = "./modules/fedimint-ln-server", version = "=0.6.0-alpha" }
131  fedimint-logging = { path = "./fedimint-logging", version = "=0.6.0-alpha" }
132  fedimint-meta-client = { path = "./modules/fedimint-meta-client", version = "=0.6.0-alpha" }
133  fedimint-meta-common = { path = "./modules/fedimint-meta-common", version = "=0.6.0-alpha" }
134  fedimint-meta-server = { path = "./modules/fedimint-meta-server", version = "=0.6.0-alpha" }
135  fedimint-metrics = { path = "./fedimint-metrics", version = "=0.6.0-alpha" }
136  fedimint-mint-client = { path = "./modules/fedimint-mint-client", version = "=0.6.0-alpha" }
137  fedimint-mint-common = { path = "./modules/fedimint-mint-common", version = "=0.6.0-alpha" }
138  fedimint-mint-server = { path = "./modules/fedimint-mint-server", version = "=0.6.0-alpha" }
139  fedimint-portalloc = { path = "utils/portalloc", version = "=0.6.0-alpha" }
140  fedimint-rocksdb = { path = "./fedimint-rocksdb", version = "=0.6.0-alpha" }
141  fedimint-server = { path = "./fedimint-server", version = "=0.6.0-alpha" }
142  fedimint-testing = { path = "./fedimint-testing", version = "=0.6.0-alpha" }
143  fedimint-testing-core = { path = "./fedimint-testing-core", version = "=0.6.0-alpha" }
144  fedimint-unknown-common = { path = "./modules/fedimint-unknown-common", version = "=0.6.0-alpha" }
145  fedimint-unknown-server = { path = "./modules/fedimint-unknown-server", version = "=0.6.0-alpha" }
146  fedimint-wallet-client = { path = "./modules/fedimint-wallet-client", version = "=0.6.0-alpha" }
147  fedimint-wallet-common = { path = "./modules/fedimint-wallet-common", version = "=0.6.0-alpha" }
148  fedimint-wallet-server = { path = "./modules/fedimint-wallet-server", version = "=0.6.0-alpha" }
149  fs-lock = "0.1.7"
150  futures = "0.3.31"
151  futures-util = "0.3.30"
152  group = "0.13.0"
153  hex = "0.4.3"
154  hex-conservative = "0.3.0"
155  hkdf = { package = "fedimint-hkdf", path = "./crypto/hkdf", version = "=0.6.0-alpha" }
156  hyper = "1.5"
157  itertools = "0.13.0"
158  jaq-core = "2.0.0"
159  jaq-json = { version = "1.0.0", features = ["serde_json"] }
160  lightning = "0.0.125"
161  lightning-invoice = { version = "0.32.0", features = ["std"] }
162  ln-gateway = { package = "fedimint-ln-gateway", path = "./gateway/ln-gateway", version = "=0.6.0-alpha" }
163  miniscript = "12.3.0"
164  rand = "0.8.5"
165  rand_chacha = "0.3.1"
166  rayon = "1.10.0"
167  reqwest = { version = "0.12.9", features = [
168      "json",
169      "rustls-tls",
170      "charset",
171      "http2",
172      "stream",
173  ], default-features = false }
174  ring = "0.17.8"
175  secp256k1 = { version = "0.29.0", default-features = false }
176  semver = "1.0.24"
177  serde = { version = "1.0.216", features = ["derive"] }
178  serdect = "0.2.0"
179  serde-big-array = "0.5.1"
180  serde_json = "1.0.133"
181  sha3 = "0.10.8"
182  strum = "0.26"
183  strum_macros = "0.26"
184  subtle = "2.6.1"
185  test-log = { version = "0.2", features = ["trace"], default-features = false }
186  tbs = { package = "fedimint-tbs", path = "./crypto/tbs", version = "=0.6.0-alpha" }
187  thiserror = "1.0.69"
188  threshold_crypto = { version = "0.2.1", package = "fedimint-threshold-crypto" }
189  tokio = "1.42.0"
190  tikv-jemallocator = "0.5"
191  tokio-rustls = "0.24.1"
192  tokio-stream = "0.1.17"
193  tonic_lnd = { version = "0.2.0", package = "fedimint-tonic-lnd", features = [
194      "lightningrpc",
195      "routerrpc",
196  ] }
197  tpe = { package = "fedimint-tpe", path = "./crypto/tpe", version = "=0.6.0-alpha" }
198  tracing = "0.1.41"
199  tracing-subscriber = "0.3.19"
200  url = "2.5.4"
201  
202  # Workaround: https://github.com/rust-lang/cargo/issues/12457 which causes
203  #             https://github.com/ipetkov/crane/issues/370
204  [profile.dev.build-override]
205  debug = false
206  opt-level = 3
207  
208  # in dev mode optimize crates that are perf-critical (usually just crypto crates)
209  [profile.dev.package]
210  ahash = { opt-level = 3 }
211  aleph-bft-crypto = { opt-level = 3 }
212  aleph-bft-rmc = { opt-level = 3 }
213  aleph-bft-types = { opt-level = 3 }
214  bitcoin_hashes = { opt-level = 3 }
215  bls12_381 = { opt-level = 3 }
216  byteorder = { opt-level = 3 }
217  fedimint-threshold-crypto = { opt-level = 3 }
218  ff = { opt-level = 3 }
219  group = { opt-level = 3 }
220  hashbrown = { opt-level = 3 }
221  tikv-jemalloc-sys = { opt-level = 3 }
222  libc = { opt-level = 3 }
223  memchr = { opt-level = 3 }
224  pairing = { opt-level = 3 }
225  ppv-lite86 = { opt-level = 3 }
226  parity-scale-codec = { opt-level = 3 }
227  rand_chacha = { opt-level = 3 }
228  rand_core = { opt-level = 3 }
229  rand = { opt-level = 3 }
230  ring = { opt-level = 3 }
231  # due to some miscompilation(?) this seems actually neccessary,
232  # otherwise we see segfaults in Nix sandbox
233  librocksdb-sys = { opt-level = 3 }
234  regex = { opt-level = 3 }
235  rustls = { opt-level = 3 }
236  secp256k1 = { opt-level = 3 }
237  secp256k1-sys = { opt-level = 3 }
238  subtle = { opt-level = 3 }
239  zeroize = { opt-level = 3 }
240  
241  [profile.dev.package."*"] # external dependencies
242  opt-level = 1
243  
244  [profile.ci]
245  inherits = "dev"
246  debug = "line-tables-only"
247  incremental = false
248  
249  [profile.ci.build-override]
250  debug = false
251  opt-level = 1
252  
253  [profile.release]
254  debug = "line-tables-only"
255  lto = "fat"
256  codegen-units = 1