[package]
name = "linera-base"
description = "Base definitions, including cryptography, used by the Linera protocol."
readme = "README.md"
documentation = "https://docs.rs/linera-base/latest/linera_base/"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
version.workspace = true
[features]
test = ["test-strategy", "proptest"]
metrics = ["prometheus"]
web = [
"futures",
"getrandom/js",
"rand/getrandom",
"rand/std",
"rand/std_rng",
"tracing-web",
"wasmtimer",
"wasm-bindgen-futures",
"wasm_thread",
"web-time",
]
[dependencies]
anyhow.workspace = true
async-graphql.workspace = true
async-graphql-derive.workspace = true
async-trait.workspace = true
base64.workspace = true
bcs.workspace = true
cfg-if.workspace = true
chrono.workspace = true
custom_debug_derive.workspace = true
ed25519-dalek.workspace = true
futures = { workspace = true, optional = true }
generic-array.workspace = true
getrandom = { workspace = true, optional = true }
hex.workspace = true
is-terminal.workspace = true
linera-witty = { workspace = true, features = ["macros"] }
prometheus = { workspace = true, optional = true }
proptest = { workspace = true, optional = true, features = ["alloc"] }
rand.workspace = true
serde.workspace = true
serde-name.workspace = true
serde_bytes.workspace = true
serde_json.workspace = true
sha3.workspace = true
test-strategy = { workspace = true, optional = true }
thiserror.workspace = true
tokio = { workspace = true, features = ["time"] }
tracing.workspace = true
tracing-subscriber = { workspace = true, features = ["json", "fmt", "ansi"] }
wasm-bindgen-futures = { workspace = true, optional = true }
wasm_thread = { workspace = true, optional = true }
wasmtimer = { workspace = true, optional = true }
web-time = { workspace = true, optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
ruzstd.workspace = true
tracing-web = { optional = true, workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
chrono.workspace = true
rand = { workspace = true, features = ["getrandom", "std", "std_rng"] }
tokio = { workspace = true, features = ["process", "rt-multi-thread"] }
prometheus.workspace = true
port-selector.workspace = true
zstd.workspace = true
[dev-dependencies]
linera-base = { path = ".", default-features = false, features = ["test"] }
linera-witty = { workspace = true, features = ["test"] }
test-case.workspace = true
[build-dependencies]
cfg_aliases.workspace = true
[package.metadata.cargo-machete]
ignored = ["async-graphql-derive", "getrandom", "serde_bytes"]