# 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 = "2021"
name = "litep2p"
version = "0.12.1"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Peer-to-peer networking library"
readme = "README.md"
license = "MIT"
repository = "https://github.com/paritytech/litep2p"

[package.metadata.cargo-machete]
ignored = ["serde_millis"]

[features]
fuzz = [
    "serde/derive",
    "serde/rc",
    "bytes/serde",
    "dep:serde_millis",
    "cid/serde",
    "multihash/serde",
]
quic = [
    "dep:webpki",
    "dep:quinn",
    "dep:rustls",
    "dep:ring",
    "dep:rcgen",
]
rsa = ["dep:ring"]
webrtc = ["dep:str0m"]
websocket = ["dep:tokio-tungstenite"]

[lib]
name = "litep2p"
path = "src/lib.rs"

[[example]]
name = "custom_executor"
path = "examples/custom_executor.rs"

[[example]]
name = "custom_protocol"
path = "examples/custom_protocol.rs"

[[example]]
name = "echo_notification"
path = "examples/echo_notification.rs"
required-features = ["quic"]

[[example]]
name = "gossiping"
path = "examples/gossiping.rs"

[[example]]
name = "mdns_and_ping"
path = "examples/mdns_and_ping.rs"

[[example]]
name = "syncing"
path = "examples/syncing.rs"
required-features = ["quic"]

[[test]]
name = "custom_executor"
path = "tests/custom_executor.rs"

[[test]]
name = "mod"
path = "tests/mod.rs"

[[test]]
name = "substream"
path = "tests/substream.rs"

[[test]]
name = "user_protocol"
path = "tests/user_protocol.rs"

[[test]]
name = "user_protocol_2"
path = "tests/user_protocol_2.rs"

[[test]]
name = "webrtc"
path = "tests/webrtc.rs"

[dependencies.async-trait]
version = "0.1.88"

[dependencies.bs58]
version = "0.5.1"

[dependencies.bytes]
version = "1.10.1"

[dependencies.cid]
version = "0.11.1"

[dependencies.ed25519-dalek]
version = "2.1.1"
features = ["rand_core"]

[dependencies.enum-display]
version = "0.1.4"

[dependencies.futures]
version = "0.3.27"

[dependencies.futures-timer]
version = "3.0.3"

[dependencies.hickory-resolver]
version = "0.25.2"

[dependencies.indexmap]
version = "2.9.0"
features = ["std"]

[dependencies.libc]
version = "0.2.158"

[dependencies.mockall]
version = "0.13.1"

[dependencies.multiaddr]
version = "0.17.0"

[dependencies.multihash]
version = "0.17.0"
features = [
    "std",
    "multihash-impl",
    "identity",
    "sha2",
    "blake2b",
]
default-features = false

[dependencies.network-interface]
version = "2.0.1"

[dependencies.parking_lot]
version = "0.12.3"

[dependencies.pin-project]
version = "1.1.10"

[dependencies.prost]
version = "0.13.5"

[dependencies.quinn]
version = "0.9.3"
features = [
    "tls-rustls",
    "runtime-tokio",
]
optional = true
default-features = false

[dependencies.rand]
version = "0.8.0"
features = ["getrandom"]

[dependencies.rcgen]
version = "0.14.5"
optional = true

[dependencies.ring]
version = "0.17.14"
optional = true

[dependencies.rustls]
version = "0.20.7"
features = ["dangerous_configuration"]
optional = true
default-features = false

[dependencies.serde]
version = "1.0.158"

[dependencies.serde_millis]
version = "0.1"
optional = true

[dependencies.sha2]
version = "0.10.9"

[dependencies.simple-dns]
version = "0.11.0"

[dependencies.smallvec]
version = "1.15.0"

[dependencies.snow]
version = "0.9.3"
features = ["ring-resolver"]
default-features = false

[dependencies.socket2]
version = "0.5.9"
features = ["all"]

[dependencies.str0m]
version = "0.9.0"
optional = true

[dependencies.thiserror]
version = "2.0.12"

[dependencies.tokio]
version = "1.45.0"
features = [
    "rt",
    "net",
    "io-util",
    "time",
    "macros",
    "sync",
    "parking_lot",
]

[dependencies.tokio-stream]
version = "0.1.17"

[dependencies.tokio-tungstenite]
version = "0.27.0"
features = [
    "rustls-tls-native-roots",
    "url",
]
optional = true

[dependencies.tokio-util]
version = "0.7.15"
features = [
    "compat",
    "io",
    "codec",
]

[dependencies.tracing]
version = "0.1.40"
features = ["log"]

[dependencies.uint]
version = "0.10.0"

[dependencies.unsigned-varint]
version = "0.8.0"
features = ["codec"]

[dependencies.url]
version = "2.5.4"

[dependencies.webpki]
version = "0.22.4"
optional = true

[dependencies.x25519-dalek]
version = "2.0.1"

[dependencies.x509-parser]
version = "0.17.0"

[dependencies.yamux]
version = "0.13.8"

[dependencies.yasna]
version = "0.5.0"

[dependencies.zeroize]
version = "1.8.1"

[dev-dependencies.futures_ringbuf]
version = "0.4.0"

[dev-dependencies.hex-literal]
version = "1.0.0"

[dev-dependencies.libp2p]
version = "0.51.4"
features = [
    "tokio",
    "dns",
    "identify",
    "macros",
    "mplex",
    "noise",
    "ping",
    "tcp",
    "kad",
    "websocket",
    "yamux",
    "quic",
]

[dev-dependencies.quickcheck]
version = "1.0.3"

[dev-dependencies.serde_json]
version = "1.0.140"

[dev-dependencies.tracing-subscriber]
version = "0.3.20"
features = ["env-filter"]

[build-dependencies.prost-build]
version = "0.14"

[profile.release]
debug = 2
