Files
darkfi/Cargo.toml
2022-02-08 14:27:46 +01:00

265 lines
5.4 KiB
TOML

[package]
name = "darkfi"
version = "0.3.0"
homepage = "https://dark.fi"
description = "Anonymous. Uncensored. Sovereign."
authors = ["darkfi <dev@dark.fi>"]
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
bitvec = {version = "1.0.0", optional = true}
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.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
[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 = [
"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", "cli", "net"]
[[example]]
name = "tui"
path = "example/tui_ex.rs"
required-features = ["async-runtime", "tui"]
[[example]]
name = "tx"
path = "example/tx.rs"
required-features = ["node"]
[[example]]
name = "tree"
path = "example/tree.rs"
required-features = ["crypto"]
# ZK VM Proof examples
[[example]]
name = "arithmetic"
path = "proof/arithmetic.rs"
required-features = ["cli", "crypto", "zkas"]
[[example]]
name = "mint"
path = "proof/mint.rs"
required-features = ["cli", "crypto", "zkas"]
[[example]]
name = "burn"
path = "proof/burn.rs"
required-features = ["cli", "crypto", "zkas"]
[[example]]
name = "dao"
path = "proof/dao.rs"
required-features = ["cli", "crypto", "zkas"]