[package]
name = "rostrum"
version = "14.0.1"
authors = ["Bitcoin Unlimited developers <info@bitcoinunlimited.info", "Roman Zeyde <me@romanzey.de>"]
description = "An efficient implementation of Electrum Server with token support"
license = "MIT"
homepage = "https://gitlab.com/BitcoinUnlimited/rostrum"
repository = "https://gitlab.com/BitcoinUnlimited/rostrum"
keywords = ["bitcoincash", "nexa", "bitcoin", "electrum", "server"]
documentation = "https://docs.rs/rostrum/"
readme = "README.md"
edition = "2021"
build = "build.rs"

[package.metadata.configure_me]
spec = "internal/config_specification.toml"

[features]
fail-on-warnings = []
nexa = []
bch = []
# Benchmarks use mod `test` that is only available in nightly (as of Oct 2022)
with-benchmarks = []

[dependencies]
anyhow = "1.0"
base64 = "0.22"
postcard = { version = "1", features = ["alloc"] }
bitcoin_hashes = { version = "0.11.0", default-features = false, features = ["serde"] } # Same version as used by bitcoincash
bitcoincash = { version = "0.29.2", features = ["serde"] }
byteorder = "1"
configure_me = "0.4"
dirs-next = "2.0.0"
hex = "0.4"
ip_rfc = "0.1.0" # remove when IP is_global is out of nightly
indexmap = "2.7"
jsonrpc = "0.19.0"
libc = "0.2"
log = "0.4"
prometheus = "0.14"
rand = "0.10"
rayon = "1.5.3"
rust_decimal = { version = "1.8.1", features = ["serde-float"] }
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
sha2 = "0.11"
signal-hook = "0.4"
stderrlog = "0.6"
version-compare = "0.2"
rocksdb = { version = "0.24", default-features = false, features = [] }
ureq = { version = "3.0", default-features = false, features = ["rustls"]}
tokio = { version = "1.32", features = ["full", "rt-multi-thread"] }
async-trait = "0.1"
tokio-tungstenite = "0.29"
futures-util = "0.3"
futures = "0.3"
bb8 = "0.9"
hyper = { version = "1.5", features = ["client", "server", "http1"] }
http-body-util = "0.1"
hyper-util = { version = "0.1", features = ["server", "client", "http1", "tokio"] }
electrum-client-netagnostic = { version = "0.21", features = ["use-rustls"] }

# same as electrum-client-netagnostic
rustls = { version = ">=0.23.31", default-features = false }
tokio-rustls = "0.26"
x509-parser = "0.18"

# Jemalloc for rocksdb is giving cross compilation issues for both win32 and darwin
[target.'cfg(target_os = "linux")'.dependencies]
## tikv-jemalloc versions same as in rocksdb 0.19
#rocksdb = { version = "0.19.0", default-features = false, features = ["zstd", "jemalloc"] }
page_size = "0.6"
sysconf = ">=0.3.4"
tikv-jemalloc-ctl = { version = "0.6", features = ["stats"] }
tikv-jemallocator = { version = "0.6" }

[target.'cfg(target_os = "windows")'.dependencies]
ctrlc = "3.4.0"

[build-dependencies]
configure_me_codegen = "0.4.0"

[package.metadata.cargo-udeps.ignore]
normal = [
    # Use not detected by udeps. Only used with linux target.
    "tikv-jemallocator"
]
