[package]
edition = "2024"
name = "smoldot"
version = "1.2.0"
authors = [
"Parity Technologies <admin@parity.io>",
"Pierre Krieger <pierre.krieger1708@gmail.com>",
]
build = false
include = ["**/*.rs"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Primitives to build a client for Substrate-based blockchains"
documentation = "https://docs.rs/smoldot"
readme = false
keywords = [
"blockchain",
"peer-to-peer",
]
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
repository = "https://github.com/paritytech/smoldot"
resolver = "2"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
[features]
database-sqlite = [
"dep:parking_lot",
"dep:rusqlite",
"std",
]
default = [
"database-sqlite",
"std",
"wasmtime",
]
std = [
"futures-executor/thread-pool",
"futures-util",
"dep:pin-project",
"schnorrkel/getrandom",
"dep:soketto",
]
wasmtime = [
"dep:wasmtime",
"std",
]
[lib]
name = "smoldot"
path = "src/lib.rs"
[[bench]]
name = "header"
path = "benches/header.rs"
harness = false
[[bench]]
name = "proof-decode"
path = "benches/proof-decode.rs"
harness = false
[dependencies.arrayvec]
version = "0.7.6"
default-features = false
[dependencies.async-lock]
version = "3.0.0"
default-features = false
[dependencies.atomic-take]
version = "1.1.0"
[dependencies.base32]
version = "0.5.1"
default-features = false
[dependencies.base64]
version = "0.22.0"
features = ["alloc"]
default-features = false
[dependencies.bip39]
version = "2.0.0"
default-features = false
[dependencies.blake2-rfc]
version = "0.2.18"
default-features = false
[dependencies.bs58]
version = "0.5.1"
features = ["alloc"]
default-features = false
[dependencies.chacha20]
version = "0.9.1"
default-features = false
[dependencies.crossbeam-queue]
version = "0.3.11"
features = ["alloc"]
default-features = false
[dependencies.derive_more]
version = "2.0"
features = ["full"]
default-features = false
[dependencies.ed25519-zebra]
version = "4.1.0"
features = ["alloc"]
default-features = false
[dependencies.either]
version = "1.9.0"
default-features = false
[dependencies.event-listener]
version = "5.3.0"
default-features = false
[dependencies.fastbloom]
version = "0.17"
default-features = false
[dependencies.fnv]
version = "1.0.7"
default-features = false
[dependencies.futures-lite]
version = "2.3.0"
features = ["alloc"]
default-features = false
[dependencies.futures-util]
version = "0.3.27"
features = [
"std",
"io",
"async-await-macro",
"sink",
]
optional = true
default-features = false
[dependencies.hashbrown]
version = "0.16.0"
features = [
"raw-entry",
"serde",
]
default-features = false
[dependencies.hex]
version = "0.4.3"
features = ["alloc"]
default-features = false
[dependencies.hmac]
version = "0.12.1"
default-features = false
[dependencies.itertools]
version = "0.14.0"
default-features = false
[dependencies.libm]
version = "0.2.8"
default-features = false
[dependencies.libsecp256k1]
version = "0.7.1"
features = [
"static-context",
"hmac",
]
default-features = false
[dependencies.merlin]
version = "3.0"
default-features = false
[dependencies.nom]
version = "8.0.0"
features = ["alloc"]
default-features = false
[dependencies.num-bigint]
version = "0.4.3"
default-features = false
[dependencies.num-rational]
version = "0.4.1"
features = ["num-bigint"]
default-features = false
[dependencies.num-traits]
version = "0.2.19"
default-features = false
[dependencies.parking_lot]
version = "0.12.1"
optional = true
[dependencies.pbkdf2]
version = "0.12.1"
default-features = false
[dependencies.pin-project]
version = "1.1.5"
optional = true
[dependencies.poly1305]
version = "0.8.0"
default-features = false
[dependencies.rand]
version = "0.8.6"
features = ["alloc"]
default-features = false
[dependencies.rand_chacha]
version = "0.3.1"
default-features = false
[dependencies.rusqlite]
version = "0.32.1"
features = ["bundled"]
optional = true
default-features = false
[dependencies.ruzstd]
version = "0.8.0"
default-features = false
[dependencies.schnorrkel]
version = "0.11.2"
features = [
"preaudit_deprecated",
"alloc",
]
default-features = false
[dependencies.serde]
version = "1.0.183"
features = [
"alloc",
"derive",
]
default-features = false
[dependencies.serde_json]
version = "1.0.104"
features = [
"alloc",
"raw_value",
]
default-features = false
[dependencies.sha2]
version = "0.10.7"
default-features = false
[dependencies.sha3]
version = "0.10.8"
default-features = false
[dependencies.siphasher]
version = "1.0.1"
default-features = false
[dependencies.slab]
version = "0.4.8"
default-features = false
[dependencies.smallvec]
version = "1.13.2"
default-features = false
[dependencies.soketto]
version = "0.8.0"
optional = true
[dependencies.twox-hash]
version = "2.0.0"
features = ["xxhash64"]
default-features = false
[dependencies.wasmi]
version = "0.40.0"
default-features = false
[dependencies.x25519-dalek]
version = "2.0.0-rc.3"
features = [
"alloc",
"precomputed-tables",
"static_secrets",
"zeroize",
]
default-features = false
[dependencies.zeroize]
version = "1.7.0"
features = ["alloc"]
default-features = false
[dev-dependencies.criterion]
version = "0.5.1"
[dev-dependencies.futures-executor]
version = "0.3.28"
default-features = false
[dev-dependencies.rand]
version = "0.8.6"
features = [
"std",
"std_rng",
]
default-features = false
[dev-dependencies.tempfile]
version = "3.10.0"
[dev-dependencies.wat]
version = "1.216.0"
[target.'cfg(any(all(target_arch = "x86_64", any(target_os = "windows", all(target_os = "linux", target_env = "gnu"), target_os = "macos")), all(target_arch = "aarch64", target_os = "linux", target_env = "gnu"), all(target_arch = "s390x", target_os = "linux", target_env = "gnu")))'.dependencies.wasmtime]
version = "36.0.8"
features = [
"async",
"cranelift",
"gc",
"gc-null",
"component-model",
"threads",
]
optional = true
default-features = false