/ 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