[package]
edition = "2024"
rust-version = "1.88.0"
name = "libp2p"
version = "0.57.1"
authors = ["Parity Technologies <admin@parity.io>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Peer-to-peer networking library"
readme = false
keywords = [
"peer-to-peer",
"libp2p",
"networking",
]
categories = [
"network-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
autonat = ["dep:libp2p-autonat"]
cbor = ["libp2p-request-response?/cbor"]
dcutr = [
"dep:libp2p-dcutr",
"libp2p-metrics?/dcutr",
]
dns = ["dep:libp2p-dns"]
ecdsa = ["libp2p-identity/ecdsa"]
ed25519 = ["libp2p-identity/ed25519"]
floodsub = ["dep:libp2p-floodsub"]
full = [
"autonat",
"cbor",
"dcutr",
"dns",
"ecdsa",
"ed25519",
"floodsub",
"gossipsub",
"gossipsub-partial-messages",
"identify",
"json",
"kad",
"macros",
"mdns",
"memory-connection-limits",
"metrics",
"noise",
"peer-store",
"ping",
"plaintext",
"pnet",
"quic",
"relay",
"rendezvous",
"request-response",
"rsa",
"secp256k1",
"serde",
"tcp",
"tls",
"tokio",
"uds",
"webrtc-websys",
"websocket-websys",
"websocket",
"webtransport-websys",
"yamux",
"upnp",
]
gossipsub = [
"dep:libp2p-gossipsub",
"libp2p-metrics?/gossipsub",
]
gossipsub-partial-messages = ["libp2p-gossipsub?/partial-messages"]
identify = [
"dep:libp2p-identify",
"libp2p-metrics?/identify",
]
json = ["libp2p-request-response?/json"]
kad = [
"dep:libp2p-kad",
"libp2p-metrics?/kad",
]
macros = ["libp2p-swarm/macros"]
mdns = ["dep:libp2p-mdns"]
memory-connection-limits = ["dep:libp2p-memory-connection-limits"]
metrics = [
"dep:libp2p-metrics",
"libp2p-gossipsub?/metrics",
]
noise = ["dep:libp2p-noise"]
peer-store = ["dep:libp2p-peer-store"]
ping = [
"dep:libp2p-ping",
"libp2p-metrics?/ping",
]
plaintext = ["dep:libp2p-plaintext"]
pnet = ["dep:libp2p-pnet"]
quic = ["dep:libp2p-quic"]
relay = [
"dep:libp2p-relay",
"libp2p-metrics?/relay",
]
rendezvous = ["dep:libp2p-rendezvous"]
request-response = ["dep:libp2p-request-response"]
rsa = ["libp2p-identity/rsa"]
secp256k1 = ["libp2p-identity/secp256k1"]
serde = [
"libp2p-core/serde",
"libp2p-kad?/serde",
"libp2p-gossipsub?/serde",
]
tcp = ["dep:libp2p-tcp"]
tls = ["dep:libp2p-tls"]
tokio = [
"libp2p-swarm/tokio",
"libp2p-mdns?/tokio",
"libp2p-tcp?/tokio",
"libp2p-dns?/tokio",
"libp2p-quic?/tokio",
"libp2p-upnp?/tokio",
]
uds = ["dep:libp2p-uds"]
upnp = ["dep:libp2p-upnp"]
webrtc-websys = ["dep:libp2p-webrtc-websys"]
websocket = ["dep:libp2p-websocket"]
websocket-websys = ["dep:libp2p-websocket-websys"]
webtransport-websys = ["dep:libp2p-webtransport-websys"]
yamux = ["dep:libp2p-yamux"]
[lib]
name = "libp2p"
path = "src/lib.rs"
[dependencies.bytes]
version = "1.12"
[dependencies.either]
version = "1.16"
[dependencies.futures]
version = "0.3"
[dependencies.libp2p-allow-block-list]
version = "0.7.0"
[dependencies.libp2p-autonat]
version = "0.16.0"
optional = true
[dependencies.libp2p-connection-limits]
version = "0.7.0"
[dependencies.libp2p-core]
version = "0.44.0"
[dependencies.libp2p-dcutr]
version = "0.15.0"
optional = true
[dependencies.libp2p-floodsub]
version = "0.48.0"
optional = true
[dependencies.libp2p-gossipsub]
version = "0.50.0"
optional = true
[dependencies.libp2p-identify]
version = "0.48.0"
optional = true
[dependencies.libp2p-identity]
version = "0.3.0"
features = ["rand"]
[dependencies.libp2p-kad]
version = "0.49.0"
optional = true
[dependencies.libp2p-metrics]
version = "0.18.0"
optional = true
[dependencies.libp2p-noise]
version = "0.47.0"
optional = true
[dependencies.libp2p-peer-store]
version = "0.1.0"
optional = true
[dependencies.libp2p-ping]
version = "0.48.0"
optional = true
[dependencies.libp2p-plaintext]
version = "0.44.0"
optional = true
[dependencies.libp2p-pnet]
version = "0.27.0"
optional = true
[dependencies.libp2p-relay]
version = "0.22.0"
optional = true
[dependencies.libp2p-rendezvous]
version = "0.18.0"
optional = true
[dependencies.libp2p-request-response]
version = "0.30.0"
optional = true
[dependencies.libp2p-swarm]
version = "0.48.0"
[dependencies.libp2p-yamux]
version = "0.48.0"
optional = true
[dependencies.multiaddr]
version = "0.19"
[dependencies.pin-project]
version = "1.1"
[dependencies.rw-stream-sink]
version = "0.5.0"
[dependencies.thiserror]
version = "2"
[dev-dependencies.libp2p-mplex]
version = "0.44.0"
[dev-dependencies.libp2p-tcp]
version = "0.45.0"
features = ["tokio"]
[dev-dependencies.tokio]
version = "1.53"
features = [
"io-util",
"io-std",
"macros",
"rt",
"rt-multi-thread",
]
default-features = false
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-dns]
version = "0.45.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-mdns]
version = "0.49.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-memory-connection-limits]
version = "0.6.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-quic]
version = "0.14.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-tcp]
version = "0.45.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-tls]
version = "0.7.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-uds]
version = "0.44.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-upnp]
version = "0.7.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p-websocket]
version = "0.46.0"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.libp2p-webrtc-websys]
version = "0.5.0"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.libp2p-websocket-websys]
version = "0.6.0"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.libp2p-webtransport-websys]
version = "0.6.0"
optional = true
[target.'cfg(target_family="wasm")'.dependencies.futures-timer]
version = "3.0"
features = ["wasm-bindgen"]
[target.'cfg(target_family="wasm")'.dependencies.getrandom]
version = "0.4"
features = ["wasm_js"]
[lints.clippy]
dbg_macro = "warn"
manual_let_else = "warn"
type_complexity = "allow"
unnecessary_wraps = "warn"
used_underscore_binding = "warn"
[lints.clippy.pedantic]
level = "allow"
priority = -1
[lints.rust]
unreachable_pub = "warn"