neptune-cash 0.0.10

A layer-1 cryptocurrency featuring scalable privacy and post-quantum security.
[package]
name = "neptune-cash"
description = "A layer-1 cryptocurrency featuring scalable privacy and post-quantum security."
authors = ["Triton Software"]

version = "0.0.10"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"

homepage = "https://neptune.cash/"
repository = "https://github.com/Neptune-Crypto/neptune-core/"

default-run = "neptune-core"

# for `dist`-generated Windows installer “msi”
[package.metadata.wix]
upgrade-guid = "A6452C01-7126-49A5-A6BD-7D440E71737B"
path-guid = "8D2A09BD-A068-42BA-B4C7-9DD7AE1F9B94"
license = false
eula = false

[features]

# logs write-lock acquisitions that are held over 100 millis.  requires nightly.
# to enable: cargo +nightly build --features log-slow-write-lock
# note: nothing logged until lock is released (guard dropped)
# alternative: run tokio-console
log-slow-write-lock = ["track-lock-location", "track-lock-time"]

# logs read-lock acquisitions that are held over 100 millis.  requires nightly.
# to enable: cargo +nightly build --features log-slow-read-lock
# note: nothing logged until lock is released (guard dropped)
# alternative: run tokio-console
log-slow-read-lock = ["track-lock-location", "track-lock-time"]

# logs all lock events (try_acquire, acquire, release).
# useful for debugging deadlocks, or if a lock is never being released.
# includes acquisition location if track-lock-location feature is enabled.
# alternative: run tokio-console
log-lock_events = []

# locks::sync::tokio support for tracking location of lock acquisition
# requires nightly.  not generally useful by itself.
track-lock-location = []

# locks::sync::tokio support for tracking instant of lock acquisition
# not generally useful by itself.
track-lock-time = []

[dependencies]
aead = { version = "0.5", features = ["std"] }
aes-gcm = "0.10"
anyhow = { version = "1.0", features = ["backtrace"] }
arbitrary = { version = "1.3", features = ["derive"] }
bech32 = "0.9"
bincode = "1.3"
bytes = "1.8"
bytesize = "1.3"
chrono = "=0.4.34"
clap = { version = "4.5", features = ["derive"] }
clap_complete = "4.5"
console-subscriber = "0.2"
crossterm = "0.27"
directories = "5.0"
field_count = "0.1"
futures = "0.3"
get-size = { version = "0.1", features = ["derive"] }
itertools = "0.11"
memmap2 = "0.9"
num-bigint = { version = "0.4", features = ["serde"] }
num-rational = "0.4"
num-traits = "0.2"
priority-queue = "1.4"
proptest = "1.5"
proptest-arbitrary-interop = "0.1"
rand = "0.8"
ratatui = "0.29"
regex = "1.11.0"
semver = "^1.0.23"
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
serde_json = "1.0"
strum = { version = "0.26.3", features = ["derive"] }
strum_macros = "0.26.4"
tarpc = { version = "^0.34", features = [
    "tokio1",
    "serde-transport",
    "serde-transport-json",
    "tcp",
] }
tasm-lib = "0.43.0"
tiny-bip39 = "1.0"
tokio = { version = "1.41", features = ["full", "tracing"] }
tokio-serde = { version = "0.8", features = ["bincode", "json"] }
tokio-util = { version = "0.7", features = ["codec", "rt"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["std", "env-filter", "time", "fmt"] }
tracing-test = "0.2"
unicode-width = "0.1"
zeroize = "1.8.1"
rs-leveldb = "0.1.5"
leveldb-sys = "2.0.9"
async-trait = "0.1.83"
async-stream = "0.3.6"
sha3 = "0.10.8"
rand_distr = "0.4.3"
readonly = "0.2.12"
thiserror = "1.0.65"
systemstat = "0.2.3"
sysinfo = "0.31.4"
thread-priority = "1.2.0"

[dev-dependencies]
assert2 = "0.3"
blake3 = "1.5.4"
divan = "0.1.14"
pin-project-lite = "0.2.14"
rand_distr = "0.4.3"
rayon = "1.10"
reqwest = { version = "0.12.8", features = ["blocking"] }
test-strategy = "0.3"
tokio-test = "0.4"

[dev-dependencies.cargo-husky]
version = "1"
default-features = false
features = ["user-hooks"]

# `opt-level = 3` is needed because it otherwise takes too long to sign
# transaction with STARK proofs. The other flags are there to make compilation
# of Triton VM faster.
[profile.dev.package.triton-vm]
opt-level = 3
debug = false
incremental = false
debug-assertions = false
overflow-checks = false

[profile.release.package.triton-vm]
opt-level = 3
debug = false
incremental = false
debug-assertions = false
overflow-checks = false

[profile.bench.package.triton-vm]
opt-level = 3
debug = false
incremental = false
debug-assertions = false
overflow-checks = false

[profile.test.package.triton-vm]
opt-level = 3
debug = false
incremental = false
debug-assertions = false
overflow-checks = false

# Set to make compilation of Triton VM faster. Since it uses build scripts
# that should run with `opt-level=3` set.
[profile.test]
build-override.opt-level = 3
opt-level = 3                # Set to make execution of tests in this crate faster. Cf: https://github.com/Neptune-Crypto/neptune-core/issues/204

[profile.release]
build-override.opt-level = 3
panic = 'abort'

[profile.bench]
build-override.opt-level = 3

[profile.dev]
build-override.opt-level = 3
panic = 'abort'

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"

[[bin]]
name = "neptune-core"
path = "src/main.rs"

[[bin]]
name = "neptune-dashboard"

[[bin]]
name = "neptune-cli"

## We use harness = false on these so that the divan reports are output on stdout.

[[bench]]
name = "sync_atomic"
harness = false

[[bench]]
name = "db_leveldb"
harness = false

[[bench]]
name = "db_dbtvec"
harness = false

[[bench]]
name = "archival_mmr"
harness = false

[[bench]]
name = "consensus"
harness = false