[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" #[profile.release] #debug = true #lto = "fat" #codegen-units = 1 [workspace] members = [ "bin/zkas", #"bin/cashierd", "bin/darkfid", "bin/drk", "bin/faucetd", "bin/ircd", #"bin/irc-raft", "bin/dnetview", "bin/daod", "bin/dao-cli", "bin/tau/taud", "bin/tau/tau-cli", "bin/vanityaddr", "src/sdk", "src/util/derive", "src/util/derive-internal", ] [dependencies] # Hard dependencies libc = "0.2.126" log = "0.4.17" thiserror = "1.0.31" # async-runtime smol = {version = "1.2.5", optional = true} futures = {version = "0.3.21", optional = true} async-std = {version = "1.12.0", features = ["attributes"], optional = true} async-trait = {version = "0.1.56", 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.10", 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 = "1.0.0", optional = true} # Encoding hex = {version = "0.4.3", optional = true} bs58 = {version = "0.4.0", optional = true} toml = {version = "0.5.9", optional = true} bytes = {version = "1.1.0", optional = true} bincode = {version = "2.0.0-rc.1", features = ["serde"], optional = true} num-bigint = {version = "0.4.3", features = ["serde"], optional = true} serde_json = {version = "1.0.82", optional = true} serde = {version = "1.0.138", features = ["derive"], optional = true} structopt = {version= "0.3.26", optional = true} structopt-toml = {version= "0.5.0", optional = true} # Utilities url = {version = "2.2.2", features = ["serde"], optional = true} dirs = {version = "4.0.0", optional = true} subtle = {version = "2.4.1", optional = true} lazy_static = {version = "1.4.0", optional = true} lazy-init = {version = "0.5.0", optional = true} fxhash = {version = "0.2.1", optional = true} indexmap = {version = "1.9.1", 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} regex = {version = "1.5.6", optional = true} # Misc termion = {version = "1.5.6", optional = true} simplelog = {version = "0.12.0", optional = true} # Websockets tungstenite = {version = "0.17.2", optional = true} async-tungstenite = {version = "0.17.2", optional = true} # socks5 fast-socks5 = {version = "0.4.3", 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.12.0", optional = true} arrayvec = {version = "0.7.2", optional = true} blake2b_simd = {version = "1.0.0", optional = true} pasta_curves = {version = "0.4.0", optional = true} crypto_api_chachapoly = {version = "0.5.0", optional = true} incrementalmerkletree = {version = "0.3.0", optional = true} halo2_proofs = {version = "0.2.0", optional = true} halo2_gadgets = {version = "0.2.0", optional = true} #halo2_proofs = {git = "https://github.com/zcash/halo2.git", rev = "a898d65ae3ad3d41987666f6a03cfc15edae01c4", optional = true} #halo2_gadgets = {git = "https://github.com/zcash/halo2.git", rev = "a898d65ae3ad3d41987666f6a03cfc15edae01c4", optional = true} # Smart contract runtime drk-sdk = {path = "src/sdk", optional = true} wasmer = {version = "2.3.0", optional = true} wasmer-compiler-singlepass = {version = "2.3.0", optional = true} wasmer-middlewares = {version = "2.3.0", optional = true} # Wallet management sqlx = {version = "0.6.0", features = ["runtime-async-std-native-tls", "sqlite"], optional = true} libsqlite3-sys = {version = "0.24.2", features = ["bundled-sqlcipher"], optional = true } # Blockchain store sled = {version = "0.34.7", optional = true} [dev-dependencies] clap = {version = "3.2.8", features = ["derive"]} halo2_proofs = {version = "0.2.0", features = ["dev-graph", "gadget-traces", "sanity-checks"]} halo2_gadgets = {version = "0.2.0", features = ["dev-graph", "test-dependencies"]} #halo2_proofs = {git = "https://github.com/zcash/halo2.git", rev = "a898d65ae3ad3d41987666f6a03cfc15edae01c4", features = ["dev-graph", "gadget-traces", "sanity-checks"]} #halo2_gadgets = {git = "https://github.com/zcash/halo2.git", rev = "a898d65ae3ad3d41987666f6a03cfc15edae01c4", features = ["dev-graph", "test-dependencies"]} plotters = "0.3.1" [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 = [ "bs58", "hex", "bincode", "serde", "toml", "url", "simplelog", "serde_json", "dirs", "num-bigint", "fxhash", "chrono", "async-net", "async-runtime", "darkfi-derive", "darkfi-derive-internal", "rpc", ] rpc = [ "rand", "url", "fast-socks5", "async-net", "async-runtime", "websockets", "net", ] blockchain = [ "blake3", "chrono", "indexmap", "sled", "crypto", "tx", "net", "node", "util", ] system = [ "fxhash", "rand", "async-runtime", ] net = [ "fxhash", "socket2", "futures-rustls", "fast-socks5", "ed25519-compact", "rcgen", "regex", "rustls-pemfile", "structopt", "structopt-toml", "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", "async-std", "crypto", "util", ] wasm-runtime = [ "drk-sdk", "wasmer", "wasmer-compiler-singlepass", "wasmer-middlewares", ] node = [ "url", "bytes", "lazy-init", "async-runtime", "blockchain", "crypto", "wallet", "util", "net", ] zkas = [ "termion", "indexmap", "itertools", "util", ] raft = [ "blake3", "sled", "util", "net", "rpc", ] tx = [ "crypto", "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 = "zk" path = "example/zk.rs" required-features = ["crypto"] #[[example]] #name = "lead" #path = "example/lead.rs" #required-features = ["node"]