# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "smoldot"
version = "1.1.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.5"
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.5"
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.7"
features = [
    "async",
    "cranelift",
    "gc",
    "gc-null",
    "component-model",
    "threads",
]
optional = true
default-features = false
