librustzcash/Cargo.toml

200 lines
6.7 KiB
TOML
Raw Normal View History

2018-08-23 13:10:04 -07:00
[workspace]
members = [
2020-06-25 17:53:07 -07:00
"components/equihash",
2021-09-22 06:13:34 -07:00
"components/f4jumble",
"components/zcash_address",
"components/zcash_encoding",
2024-01-27 08:22:01 -08:00
"components/zcash_protocol",
2024-01-15 15:16:42 -08:00
"components/zip321",
"devtools",
2024-10-07 20:42:20 -07:00
"pczt",
"zcash",
"zcash_client_backend",
"zcash_client_sqlite",
"zcash_extensions",
2020-03-03 17:02:31 -08:00
"zcash_history",
"zcash_keys",
"zcash_primitives",
"zcash_proofs",
2024-12-14 04:48:03 -08:00
"zcash_transparent",
2018-08-23 13:10:04 -07:00
]
[workspace.package]
edition = "2021"
2024-10-18 15:10:40 -07:00
rust-version = "1.77"
repository = "https://github.com/zcash/librustzcash"
license = "MIT OR Apache-2.0"
categories = ["cryptography::cryptocurrencies"]
# Common dependencies across all of our crates. Dependencies used only by a single crate
# (and that don't have cross-crate versioning needs) are specified by the crate itself.
#
# See the individual crate `Cargo.toml` files for information about which dependencies are
# part of a public API, and which can be updated without a SemVer bump.
[workspace.dependencies]
# Intra-workspace dependencies
equihash = { version = "0.2", path = "components/equihash" }
zcash_address = { version = "0.6", path = "components/zcash_address", default-features = false }
zcash_client_backend = { version = "0.15", path = "zcash_client_backend" }
zcash_encoding = { version = "0.2.1", path = "components/zcash_encoding", default-features = false }
2024-11-14 15:04:53 -08:00
zcash_keys = { version = "0.5", path = "zcash_keys" }
zcash_protocol = { version = "0.4.1", path = "components/zcash_protocol", default-features = false }
2024-10-04 11:36:28 -07:00
zip321 = { version = "0.2", path = "components/zip321" }
2024-01-27 08:22:01 -08:00
zcash_note_encryption = "0.4.1"
zcash_primitives = { version = "0.20", path = "zcash_primitives", default-features = false }
2024-11-14 15:02:39 -08:00
zcash_proofs = { version = "0.20", path = "zcash_proofs", default-features = false }
pczt = { version = "0.0", path = "pczt" }
# Shielded protocols
bellman = { version = "0.14", default-features = false, features = ["groth16"] }
ff = { version = "0.13", default-features = false }
group = "0.13"
incrementalmerkletree = { version = "0.7.1", default-features = false }
shardtree = "0.5"
zcash_spec = "0.1"
# Payment protocols
# - Sapling
bitvec = { version = "1", default-features = false, features = ["alloc"] }
blake2s_simd = { version = "1", default-features = false }
bls12_381 = "0.8"
jubjub = "0.10"
redjubjub = "0.7"
sapling = { package = "sapling-crypto", version = "0.3", default-features = false }
# - Orchard
nonempty = "0.7"
orchard = { version = "0.10", default-features = false }
pasta_curves = "0.5"
# - Transparent
bip32 = { version = "0.5", default-features = false }
ripemd = { version = "0.1", default-features = false }
secp256k1 = { version = "0.27", default-features = false, features = ["alloc"] }
transparent = { package = "zcash_transparent", version = "0.0", path = "zcash_transparent", default-features = false }
# Boilerplate & missing stdlib
getset = "0.1"
# CSPRNG
rand = { version = "0.8", default-features = false }
rand_core = { version = "0.6", default-features = false }
# Currency conversions
rust_decimal = { version = "1.35", default-features = false, features = ["serde"] }
# Digests
blake2b_simd = { version = "1", default-features = false }
sha2 = { version = "0.10", default-features = false }
2024-01-03 12:14:41 -08:00
# Documentation
document-features = "0.2"
# Encodings
base64 = "0.22"
bech32 = { version = "0.11", default-features = false, features = ["alloc"] }
bs58 = { version = "0.5", default-features = false, features = ["alloc", "check"] }
byteorder = "1"
hex = { version = "0.4", default-features = false, features = ["alloc"] }
percent-encoding = "2.1.0"
postcard = { version = "1", features = ["alloc"] }
serde = { version = "1", default-features = false, features = ["derive"] }
serde_json = "1"
# HTTP
hyper = "1"
http-body-util = "0.1"
hyper-util = { version = "0.1.1", features = ["tokio"] }
tokio-rustls = "0.24"
webpki-roots = "0.25"
# Logging and metrics
memuse = { version = "0.2.2", default-features = false }
tracing = { version = "0.1", default-features = false }
# No-std support
core2 = { version = "0.3", default-features = false, features = ["alloc"] }
# Parallel processing
crossbeam-channel = "0.5"
maybe-rayon = { version = "0.1.0", default-features = false }
rayon = "1.5"
# Protobuf and gRPC
prost = "0.13"
tonic = { version = "0.12", default-features = false }
tonic-build = { version = "0.12", default-features = false }
# Secret management
secrecy = "0.8"
subtle = { version = "2.2.3", default-features = false }
# SQLite databases
# - Warning: One of the downstream consumers requires that SQLite be available through
# CocoaPods, due to being bound to React Native. We need to ensure that the SQLite
# version required for `rusqlite` is a version that is available through CocoaPods.
2024-10-18 15:41:52 -07:00
rusqlite = { version = "0.32", features = ["bundled"] }
schemerz = "0.2"
2024-10-18 15:41:52 -07:00
schemerz-rusqlite = "0.320"
time = "0.3.22"
uuid = "1.1"
# Static constants and assertions
lazy_static = "1"
static_assertions = "1"
# Tests and benchmarks
ambassador = "0.4"
assert_matches = "1.5"
2024-06-12 04:45:09 -07:00
criterion = "0.5"
proptest = "1"
rand_chacha = "0.3"
rand_xorshift = "0.3"
incrementalmerkletree-testing = "0.2"
# Tor
# - `arti-client` depends on `rusqlite`, and a version mismatch there causes a compilation
# failure due to incompatible `libsqlite3-sys` versions.
2024-10-18 15:41:52 -07:00
arti-client = { version = "0.23", default-features = false, features = ["compression", "rustls", "tokio"] }
dynosaur = "0.1.1"
tokio = "1"
2024-10-18 15:41:52 -07:00
tor-rtcompat = "0.23"
tower = "0.4"
trait-variant = "0.1"
# ZIP 32
aes = "0.8"
fpe = { version = "0.6", default-features = false, features = ["alloc"] }
zip32 = { version = "0.1.1", default-features = false }
2018-08-23 13:10:04 -07:00
[profile.release]
lto = true
panic = 'abort'
codegen-units = 1
[profile.test]
# Since we have many computationally expensive tests, this changes the test profile to
# compile with optimizations by default, but keep full debug info.
#
# This differs from the release profile in the following ways:
# - it does not set `lto = true`, which increases compile times without substantially
# speeding up tests;
# - it does not set `codegen-units = 1`, which increases compile times and is only
# useful to improve determinism of release builds;
# - it does not set `panic = 'abort'`, which is in any case ignored for tests.
#
# To get results as close as possible to a release build, use `cargo test --release`.
# To speed up compilation and avoid optimizations potentially resulting in lower-quality
# debug info, use `cargo test --profile=dev`.
opt-level = 3
debug = true
[workspace.lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(zcash_unstable, values("zfuture"))'] }
[patch.crates-io]
orchard = { git = "https://github.com/zcash/orchard.git", rev = "f99b6565a78763b58dac792d7492c55067bae680" }
sapling-crypto = { git = "https://github.com/zcash/sapling-crypto.git", rev = "e47d57f5c9c46f05740328f8ef9601f6d697cf34" }