[package] name = "darkfi" version = "0.3.0" homepage = "https://dark.fi" description = "Anonymous. Uncensored. Sovereign." authors = ["darkfi "] repository = "https://github.com/darkrenaissance/darkfi" license = "AGPL-3.0-only" edition = "2021" [lib] name = "darkfi" [workspace] members = [ "bin/zkas", "bin/cashierd", "bin/darkfid", "bin/drk", "bin/gatewayd", "bin/ircd", "bin/map", "bin/daod", "bin/dao-cli", ] [dependencies] # Hard dependencies log = "0.4.14" thiserror = "1.0.30" # async-runtime smol = {version = "1.2.5", optional = true} futures = {version = "0.3.19", optional = true} async-std = {version = "1.10.0", features = ["attributes"], optional = true} async-trait = {version = "0.1.52", optional = true} async-channel = {version = "1.6.1", optional = true} async-executor = {version = "1.4.1", optional = true} # async-net async-native-tls = {version = "0.4.0", optional = true} native-tls = {version = "0.2.8", optional = true} # Encoding hex = {version = "0.4.3", optional = true} bs58 = {version = "0.4.0", optional = true} toml = {version = "0.5.8", optional = true} bytes = {version = "1.1.0", optional = true} bincode = {version = "1.3.3", optional = true} num-bigint = {version = "0.4.3", optional = true} serde_json = {version = "1.0.74", optional = true} serde = {version = "1.0.133", features = ["derive"], optional = true} # Utilities url = {version = "2.2.2", optional = true} dirs = {version = "4.0.0", optional = true} subtle = {version = "2.4.1", optional = true} lazy_static = {version = "1.4.0", optional = true} indexmap = {version = "1.7.0", optional = true} itertools = {version = "0.10.3", optional = true} # Misc termion = {version = "1.5.6", optional = true} simplelog = {version = "0.11.2", optional = true} # Websockets tungstenite = {version = "0.16.0", optional = true} async-tungstenite = {version = "0.16.1", optional = true} # socks5 fast-socks5 = {git = "https://github.com/ghassmo/fast-socks5", optional = true} # Crypto bitvec = {version = "1.0.0", optional = true} rand = {version = "0.8.5", optional = true} sha2 = {version = "0.10.1", optional = true} group = {version = "0.11.0", optional = true} arrayvec = {version = "0.7.2", optional = true} blake2b_simd = {version = "1.0.0", optional = true} pasta_curves = {version = "0.3.0", optional = true} crypto_api_chachapoly = {version = "0.5.0", optional = true} incrementalmerkletree = {version = "0.2.0", optional = true} halo2_proofs = {git = "https://github.com/zcash/halo2", branch = "main", features = ["dev-graph", "gadget-traces", "sanity-checks"], optional = true} halo2_gadgets = {git = "https://github.com/zcash/halo2", branch = "main", features = ["dev-graph", "test-dependencies"], optional = true} # Wallet management sqlx = {version = "0.5.10", features = ["runtime-async-std-native-tls", "sqlite"], optional = true} libsqlite3-sys = {version = "0.23.1", features = ["bundled-sqlcipher"], optional = true } # Node utilities signal-hook = {version = "0.3.13", optional = true} signal-hook-async-std = {version = "0.2.2", optional = true} # Node protocol [dependencies.zeromq] version = "0.3.3" default-features = false features = ["async-std-runtime", "all-transport"] optional = true [dependencies.rocksdb] # TODO: Revert to upstream after bd966750ec861d687913d59a9939a1408ac53131 is merged. git = "https://github.com/parazyd/rust-rocksdb" rev = "bd966750ec861d687913d59a9939a1408ac53131" default-features = false features = ["zstd"] optional = true [dev-dependencies] clap = {version = "3.0.7", features = ["derive"]} [features] async-runtime = [ "async-std", "async-channel", "async-executor", "async-trait", "futures", "smol", ] async-net = [ "async-native-tls", "native-tls", ] websockets = [ "async-tungstenite", "tungstenite", ] util = [ "hex", "bincode", "serde", "toml", "url", "simplelog", "serde_json", "dirs", "num-bigint", ] rpc = [ "rand", "url", "fast-socks5", "async-net", "async-runtime", "websockets", "util", ] blockchain = [ "rocksdb", "async-runtime", "util", ] system = [ "rand", "async-runtime", ] net = [ "util", "system", ] crypto = [ "bitvec", "rand", "pasta_curves", "blake2b_simd", "incrementalmerkletree", "halo2_proofs", "halo2_gadgets", "subtle", "lazy_static", "group", "arrayvec", "crypto_api_chachapoly", "sha2", "bs58", "util", "zkas", ] wallet = [ "sqlx", "libsqlite3-sys" ] node = [ "url", "bytes", "zeromq", "signal-hook", "signal-hook-async-std", "async-runtime", "blockchain", "crypto", "wallet", "util", "net", ] zkas = [ "termion", "indexmap", "itertools", "util", ] [[example]] name = "net" path = "example/net.rs" required-features = ["async-runtime", "net"] [[example]] name = "tx" path = "example/tx.rs" required-features = ["node"] [[example]] name = "dao-process" path = "example/dao_process.rs" required-features = ["crypto", "zkas"] # ZK VM Proof examples [[example]] name = "arithmetic" path = "proof/arithmetic.rs" required-features = ["crypto", "zkas"] [[example]] name = "mint" path = "proof/mint.rs" required-features = ["crypto", "zkas"] [[example]] name = "burn" path = "proof/burn.rs" required-features = ["crypto", "zkas"]