[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/dnetview", "bin/daod", "bin/dao-cli", "bin/taud", "bin/tau-cli", "bin/vanityaddr", "src/sdk", "src/util/derive", "src/util/derive-internal", ] [dependencies] # Hard dependencies libc = "0.2.121" log = "0.4.16" thiserror = "1.0.30" # async-runtime smol = {version = "1.2.5", optional = true} futures = {version = "0.3.21", optional = true} async-std = {version = "1.11.0", features = ["attributes"], optional = true} async-trait = {version = "0.1.53", 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} # Networking socket2 = {version = "0.4.4", optional = true} futures-rustls = {version = "0.22.1", features = ["dangerous_configuration"], optional = true} # TLS cert utilities ed25519-compact = {version = "1.0.11", features = ["pem"], optional = true} rcgen = {version = "0.9.2", features = ["pem"], optional = true} rustls-pemfile = {version = "0.3.0", 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.79", optional = true} serde = {version = "1.0.136", 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} fxhash = {version = "0.2.1", optional = true} indexmap = {version = "1.8.0", optional = true} itertools = {version = "0.10.3", optional = true} darkfi-derive = {path = "src/util/derive", optional = true} darkfi-derive-internal = {path = "src/util/derive-internal", optional = true} chrono = {version = "0.4.19", optional = true} # Misc termion = {version = "1.5.6", optional = true} simplelog = {version = "0.12.0-alpha1", optional = true} # Websockets tungstenite = {version = "0.17.2", optional = true} async-tungstenite = {version = "0.17.2", 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} blake3 = {version = "1.3.1", optional = true} sha2 = {version = "0.10.2", 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 = {version = "0.1.0-beta.3", features = ["dev-graph", "gadget-traces", "sanity-checks"], optional = true} halo2_gadgets = {version = "0.1.0-beta.2", features = ["dev-graph", "test-dependencies"], optional = true} # Smart contract runtime drk-sdk = {path = "src/sdk", optional = true} wasmer = {version = "2.2.1", optional = true} wasmer-compiler-singlepass = {version = "2.2.1", optional = true} wasmer-middlewares = {version = "2.2.1", optional = true} # Wallet management sqlx = {version = "0.5.11", features = ["runtime-async-std-native-tls", "sqlite"], optional = true} libsqlite3-sys = {version = "0.23.2", features = ["bundled-sqlcipher"], optional = true } # Blockchain store sled = {version = "0.34.7", 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.1.6", 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", "fxhash", "darkfi-derive", "darkfi-derive-internal", ] rpc = [ "rand", "url", "fast-socks5", "async-net", "async-runtime", "websockets", "util", ] blockchain = [ "rocksdb", "sled", "chrono", "rand", "async-runtime", "util", "crypto", "net", ] system = [ "fxhash", "rand", "async-runtime", ] net = [ "fxhash", "socket2", "futures-rustls", "ed25519-compact", "rcgen", "rustls-pemfile", "util", "system", ] crypto = [ "bitvec", "blake3", "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", ] wasm-runtime = [ "drk-sdk", "wasmer", "wasmer-compiler-singlepass", "wasmer-middlewares", ] 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"]