Files
darkfi/Cargo.toml

310 lines
6.8 KiB
TOML

[package]
name = "darkfi"
version = "0.4.1"
homepage = "https://dark.fi"
description = "Anonymous. Uncensored. Sovereign."
authors = ["Dyne.org foundation <foundation@dyne.org>"]
repository = "https://github.com/darkrenaissance/darkfi"
license = "AGPL-3.0-only"
edition = "2021"
[lib]
name = "darkfi"
doctest = false
#[profile.release]
#debug = true
#lto = "fat"
#codegen-units = 1
[workspace]
members = [
"bin/zkas",
"bin/darkfid",
"bin/darkfid2",
#"bin/drk",
"bin/faucetd",
#"bin/fud/fu",
"bin/fud/fud",
"bin/genev/genevd",
"bin/genev/genev-cli",
"bin/darkirc",
"bin/tau/taud",
"bin/tau/tau-cli",
"bin/vanityaddr",
"bin/lilith",
"src/sdk",
"src/sdk/python",
"src/serial",
"src/serial/derive",
"src/serial/derive-internal",
"src/contract/test-harness",
"src/contract/money",
"src/contract/dao",
"src/contract/consensus",
"src/contract/deployooor",
#"example/dchat",
]
[dependencies]
# Hard dependencies
libc = "0.2.147"
log = "0.4.20"
thiserror = "1.0.47"
# async-runtime
async-trait = {version = "0.1.73", optional = true}
futures = {version = "0.3.28", optional = true}
smol = {version = "1.3.0", optional = true}
pin-project-lite = {version = "0.2.12", optional = true}
# Networking
async-rustls = {version = "0.4.0", features = ["dangerous_configuration"], optional = true}
# Pluggable Transports
socket2 = {version = "0.5.3", features = ["all"], optional = true}
arti-client = {version = "0.10.0", default-features = false, features = ["async-std", "rustls", "onion-service-client"], optional = true}
tor-hscrypto = {version = "0.3.1", optional = true}
# TLS cert utilities
ed25519-compact = {version = "2.0.4", optional = true}
rcgen = {version = "0.11.1", optional = true}
rustls-pemfile = {version = "1.0.3", optional = true}
x509-parser = {version = "0.15.1", features = ["validate", "verify"], optional = true}
# Encoding
bs58 = {version = "0.5.0", optional = true}
serde = {version = "1.0.185", features = ["derive"], optional = true}
tinyjson = {version = "2.5.1", optional = true}
semver = {version = "1.0.18", optional = true}
structopt = {version= "0.3.26", optional = true}
structopt-toml = {version= "0.5.1", optional = true}
toml = {version = "0.7.6", optional = true}
# Big float high precision arithmetics
dashu = {version = "0.3.1", optional = true}
# Utilities
# TODO: check chrono usage and impl our own
chrono = {version = "0.4.26", optional = true}
darkfi-serial = {path = "src/serial", optional = true}
darkfi-derive = {path = "src/serial/derive", optional = true}
lazy_static = {version = "1.4.0", optional = true}
url = {version = "2.4.0", features = ["serde"], optional = true}
# Misc
# TODO: Implement something simple and kill these deps
simplelog = {version = "0.12.1", optional = true}
# Crypto
rand = {version = "0.8.5", optional = true}
blake3 = {version = "1.4.1", features = ["rayon"], optional = true}
crypto_api_chachapoly = {version = "0.5.0", optional = true}
halo2_proofs = {version = "0.3.0", features = ["circuit-params"], optional = true}
halo2_gadgets = {version = "0.3.0", features = ["circuit-params"], optional = true}
# Smart contract runtime
darkfi-sdk = {path = "src/sdk", optional = true}
wasmer = {version = "4.1.2", optional = true}
wasmer-compiler-singlepass = {version = "4.1.2", optional = true}
wasmer-middlewares = {version = "4.1.2", optional = true}
# Wallet management
rusqlite = {version = "0.29.0", features = ["bundled-sqlcipher-vendored-openssl"], optional = true}
libsqlite3-sys = {version = "0.26.0", features = ["bundled-sqlcipher-vendored-openssl"], optional = true}
# Blockchain store
sled = {version = "0.34.7", optional = true}
sled-overlay = {version = "0.0.8", optional = true}
[dev-dependencies]
clap = {version = "4.3.24", features = ["derive"]}
halo2_proofs = {version = "0.3.0", features = ["dev-graph", "gadget-traces", "sanity-checks"]}
halo2_gadgets = {version = "0.3.0", features = ["test-dev-graph", "test-dependencies"]}
plotters = "0.3.5"
easy-parallel = "3.3.0"
prettytable-rs = "0.10.0"
# -----BEGIN LIBRARY FEATURES-----
[features]
p2p-transport-unix = []
p2p-transport-tcp = []
p2p-transport-tor = ["arti-client", "tor-hscrypto"]
p2p-transport-nym = []
async-serial = [
"darkfi-serial/async"
]
async-runtime = [
"async-trait",
"futures",
"smol",
]
blockchain = [
"async-trait",
"blake3",
"crypto_api_chachapoly",
"dashu",
#"halo2_proofs",
"lazy_static",
#"rand",
"sled",
"sled-overlay",
"smol",
#"url",
#"async-runtime",
"darkfi-sdk/async",
"darkfi-serial/crypto",
"net",
"rpc",
"tx",
#"util",
"wallet",
"wasm-runtime",
]
geode = [
"blake3",
"async-runtime",
]
event-graph = [
"blake3",
"rand",
"tinyjson",
"async-runtime",
"darkfi-serial/async",
"darkfi-serial/collections",
"darkfi-serial/hash",
"net",
]
net = [
"async-rustls",
"async-trait",
"ed25519-compact",
"futures",
"rand",
"rcgen",
"rustls-pemfile",
"semver",
"smol",
"socket2",
"structopt",
"structopt-toml",
"url",
"x509-parser",
"darkfi-serial",
"darkfi-serial/async",
"darkfi-serial/url",
"async-serial",
"system",
"util",
"p2p-transport-tcp",
"p2p-transport-tor",
"p2p-transport-nym",
"p2p-transport-unix",
]
rpc = [
"rand",
"tinyjson",
"url",
"async-runtime",
"net",
]
system = [
"pin-project-lite",
"rand",
"smol",
]
tx = [
"blake3",
"rand",
"darkfi-sdk/async",
"darkfi-serial",
"zk",
]
util = [
"rand",
"serde",
"simplelog",
"tinyjson",
"toml",
"darkfi-serial",
]
wallet = [
"rusqlite",
"smol",
"darkfi-serial",
"util",
]
wasm-runtime = [
"wasmer",
"wasmer-compiler-singlepass",
"wasmer-middlewares",
"blockchain",
"darkfi-sdk/async",
"darkfi-serial",
"util",
"zk",
"zkas",
]
zk = [
"halo2_proofs",
"halo2_gadgets",
"rand",
"darkfi-sdk/async",
"darkfi-serial/async",
"zkas",
]
zkas = [
"darkfi-serial",
]
# -----END LIBRARY FEATURES-----
[[example]]
name = "net"
path = "example/net.rs"
required-features = ["async-runtime", "net"]
[[example]]
name = "zk"
path = "example/zk.rs"
required-features = ["zk"]
[[example]]
name = "zk-inclusion-proof"
path = "example/zk-inclusion-proof.rs"
required-features = ["zk"]
[patch.crates-io]
halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v4"}
halo2_gadgets = {git="https://github.com/parazyd/halo2", branch="v4"}
arti-client = {git="https://gitlab.torproject.org/tpo/core/arti", rev="3fdadcc7509f60cfdfc51df2664aaf2f73bbd2f0"}
tor-hscrypto = {git="https://gitlab.torproject.org/tpo/core/arti", rev="3fdadcc7509f60cfdfc51df2664aaf2f73bbd2f0"}
blake2b_simd = {git="https://github.com/parazyd/blake2_simd", branch="impl-common"}