[package] name = "fluence-fork-libp2p" edition = "2018" description = "Peer-to-peer networking library" version = "0.36.2" authors = ["Parity Technologies "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p" keywords = ["peer-to-peer", "libp2p", "networking"] categories = ["network-programming", "asynchronous"] [lib] name = "libp2p" [features] default = [ "deflate", "dns", "floodsub", "identify", "kad", "gossipsub", "mdns", "mplex", "noise", "ping", "plaintext", "pnet", "request-response", "secp256k1", "tcp-async-io", "uds", "wasm-ext", "websocket", "yamux", ] deflate = ["libp2p-deflate"] dns = ["libp2p-dns"] floodsub = ["libp2p-floodsub"] identify = ["libp2p-identify"] kad = ["libp2p-kad"] gossipsub = ["libp2p-gossipsub"] mdns = ["libp2p-mdns"] mplex = ["libp2p-mplex"] noise = ["libp2p-noise"] ping = ["libp2p-ping"] plaintext = ["libp2p-plaintext"] pnet = ["libp2p-pnet"] request-response = ["libp2p-request-response"] tcp-async-io = ["libp2p-tcp", "libp2p-tcp/async-io"] tcp-tokio = ["libp2p-tcp", "libp2p-tcp/tokio"] uds = ["libp2p-uds"] wasm-ext = ["libp2p-wasm-ext"] wasm-ext-websocket = ["wasm-ext", "libp2p-wasm-ext/websocket"] websocket = ["libp2p-websocket"] yamux = ["libp2p-yamux"] secp256k1 = ["libp2p-core/secp256k1"] [package.metadata.docs.rs] all-features = true [dependencies] atomic = "0.5.0" bytes = "1" futures = "0.3.1" lazy_static = "1.2" libp2p-core = { version = "0.27.2", path = "core", default-features = false, package = "fluence-fork-libp2p-core" } libp2p-floodsub = { version = "0.28.1", path = "protocols/floodsub", optional = true, package = "fluence-fork-libp2p-floodsub" } libp2p-gossipsub = { version = "0.29.1", path = "./protocols/gossipsub", optional = true, package = "fluence-fork-libp2p-gossipsub" } libp2p-identify = { version = "0.28.1", path = "protocols/identify", optional = true, package = "fluence-fork-libp2p-identify" } libp2p-kad = { version = "0.29.1", path = "protocols/kad", optional = true, package = "fluence-fork-libp2p-kad" } libp2p-mplex = { version = "0.27.2", path = "muxers/mplex", optional = true, package = "fluence-fork-libp2p-mplex" } libp2p-noise = { version = "0.29.1", path = "transports/noise", optional = true, package = "fluence-fork-libp2p-noise" } libp2p-ping = { version = "0.28.1", path = "protocols/ping", optional = true, package = "fluence-fork-libp2p-ping" } libp2p-plaintext = { version = "0.27.2", path = "transports/plaintext", optional = true, package = "fluence-fork-libp2p-plaintext" } libp2p-pnet = { version = "0.20.2", path = "transports/pnet", optional = true, package = "fluence-fork-libp2p-pnet" } libp2p-request-response = { version = "0.10.1", path = "protocols/request-response", optional = true, package = "fluence-fork-libp2p-request-response" } libp2p-swarm = { version = "0.28.1", path = "swarm", package = "fluence-fork-libp2p-swarm" } libp2p-swarm-derive = { version = "0.22.1", path = "swarm-derive", package = "fluence-fork-libp2p-swarm-derive" } libp2p-uds = { version = "0.27.1", path = "transports/uds", optional = true, package = "fluence-fork-libp2p-uds" } libp2p-wasm-ext = { version = "0.27.1", path = "transports/wasm-ext", default-features = false, optional = true, package = "fluence-fork-libp2p-wasm-ext" } libp2p-yamux = { version = "0.30.2", path = "muxers/yamux", optional = true, package = "fluence-fork-libp2p-yamux" } multiaddr = { package = "fluence-fork-parity-multiaddr", version = "0.11.2", path = "misc/multiaddr" } parking_lot = "0.11.0" pin-project = "1.0.0" smallvec = "1.0" wasm-timer = "0.2.4" [target.'cfg(not(any(target_os = "emscripten", target_os = "wasi", target_os = "unknown")))'.dependencies] libp2p-deflate = { version = "0.27.2", path = "transports/deflate", optional = true, package = "fluence-fork-libp2p-deflate" } libp2p-dns = { version = "0.27.1", path = "transports/dns", optional = true, package = "fluence-fork-libp2p-dns" } libp2p-mdns = { version = "0.29.1", path = "protocols/mdns", optional = true, package = "fluence-fork-libp2p-mdns" } libp2p-tcp = { version = "0.27.3", path = "transports/tcp", default-features = false, optional = true, package = "fluence-fork-libp2p-tcp" } libp2p-websocket = { version = "0.28.1", path = "transports/websocket", optional = true, package = "fluence-fork-libp2p-websocket" } [dev-dependencies] async-std = { version = "1.6.2", features = ["attributes"] } env_logger = "0.8.1" tokio = { version = "1.0.1", features = ["io-util", "io-std", "macros", "rt", "rt-multi-thread"] } trust-graph = "0.2.7" [workspace] members = [ "core", "misc/multiaddr", "misc/multistream-select", "misc/peer-id-generator", "muxers/mplex", "muxers/yamux", "protocols/floodsub", "protocols/gossipsub", "protocols/identify", "protocols/kad", "protocols/mdns", "protocols/ping", "protocols/request-response", "swarm", "swarm-derive", "transports/deflate", "transports/dns", "transports/noise", "transports/plaintext", "transports/pnet", "transports/tcp", "transports/uds", "transports/websocket", "transports/wasm-ext" ] [[example]] name = "chat-tokio" required-features = ["tcp-tokio", "mdns"] # NOTE: this is required because trust-graph depends on libp2p-core, # and patches it to git only in patch section, which apparently isn't # visible via dependency mechanics (i.e., not visible HERE) [patch.crates-io] libp2p-core = { package = "fluence-fork-libp2p-core", path = "core" } # required for wasm compilation # adds saturating_duration_since methods wasm-timer = { git = "https://github.com/fluencelabs/wasm-timer", branch = "saturating_duration_since" } [package.metadata.workspaces] independent = true ## uncomment this patch section if using git dependencies in trust graph # [patch.'https://github.com/fluencelabs/rust-libp2p'] # libp2p-core = { package = "fluence-fork-libp2p-core", path = "core" }