[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", ] [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", 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} clap = {version = "3.0.7", features = ["derive"], 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} # Crypto rand = {version = "0.8.4", 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.2.1", optional = true} crypto_api_chachapoly = {version = "0.5.0", optional = true} incrementalmerkletree = {version = "0.2.0", optional = true} halo2 = {version = "=0.1.0-beta.1", features = ["dev-graph", "gadget-traces", "sanity-checks"], 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 [dependencies.halo2_gadgets] # TODO: Use upstream when published git = "https://github.com/parazyd/halo2_gadgets.git" rev = "b45c527276bb2309f3b256eb5f45ccdcc5bd8c0f" features = ["dev-graph", "test-dependencies"] optional = true [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", "serde_json", "dirs", "num-bigint", ] rpc = [ "rand", "url", "async-net", "async-runtime", "websockets", "util", ] blockchain = [ "rocksdb", "async-runtime", "util", ] tui = [ "async-std", "termion", ] system = [ "rand", "async-runtime", ] cli = [ "simplelog", "toml", "clap", "util", ] net = [ "util", "system", ] crypto = [ "rand", "pasta_curves", "blake2b_simd", "incrementalmerkletree", "halo2", "halo2_gadgets", "subtle", "lazy_static", "group", "arrayvec", "crypto_api_chachapoly", "sha2", "bs58", "util", ] 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", ] zkvm = [ "crypto", "zkas", ] [[example]] name = "net" path = "example/net.rs" required-features = ["async-runtime", "cli", "net"] [[example]] name = "tui" path = "example/tui_ex.rs" required-features = ["async-runtime", "tui"] [[example]] name = "vm" path = "example/vm.rs" required-features = ["cli", "zkvm"] [[example]] name = "tx" path = "example/tx.rs" required-features = ["node"] [[example]] name = "tree" path = "example/tree.rs" required-features = ["crypto"]