feat(quic): promote to stable release

- Cut a stable release of `libp2p-quic`.
- Export `libp2p-quic` as `libp2p::quic`.
- Update examples to use `libp2p-quic` through `libp2p`.

Pull-Request: #4325.
This commit is contained in:
Max Inden
2023-08-17 09:54:29 +02:00
committed by GitHub
parent 2c4c961d69
commit cbdbaa836e
15 changed files with 30 additions and 27 deletions

9
Cargo.lock generated
View File

@ -831,7 +831,6 @@ dependencies = [
"env_logger 0.10.0", "env_logger 0.10.0",
"futures", "futures",
"libp2p", "libp2p",
"libp2p-quic",
] ]
[[package]] [[package]]
@ -1309,7 +1308,6 @@ dependencies = [
"futures", "futures",
"futures-timer", "futures-timer",
"libp2p", "libp2p",
"libp2p-quic",
"log", "log",
] ]
@ -2354,7 +2352,6 @@ dependencies = [
"instant", "instant",
"libp2p", "libp2p",
"libp2p-mplex", "libp2p-mplex",
"libp2p-quic",
"libp2p-webrtc", "libp2p-webrtc",
"log", "log",
"mime_guess", "mime_guess",
@ -2512,7 +2509,7 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
[[package]] [[package]]
name = "libp2p" name = "libp2p"
version = "0.52.2" version = "0.52.3"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-trait", "async-trait",
@ -2543,6 +2540,7 @@ dependencies = [
"libp2p-ping", "libp2p-ping",
"libp2p-plaintext", "libp2p-plaintext",
"libp2p-pnet", "libp2p-pnet",
"libp2p-quic",
"libp2p-relay", "libp2p-relay",
"libp2p-rendezvous", "libp2p-rendezvous",
"libp2p-request-response", "libp2p-request-response",
@ -3058,7 +3056,7 @@ dependencies = [
[[package]] [[package]]
name = "libp2p-quic" name = "libp2p-quic"
version = "0.9.2-alpha" version = "0.9.2"
dependencies = [ dependencies = [
"async-std", "async-std",
"bytes", "bytes",
@ -4610,7 +4608,6 @@ dependencies = [
"env_logger 0.10.0", "env_logger 0.10.0",
"futures", "futures",
"libp2p", "libp2p",
"libp2p-quic",
] ]
[[package]] [[package]]

View File

@ -85,7 +85,7 @@ libp2p-perf = { version = "0.2.0", path = "protocols/perf" }
libp2p-ping = { version = "0.43.0", path = "protocols/ping" } libp2p-ping = { version = "0.43.0", path = "protocols/ping" }
libp2p-plaintext = { version = "0.40.0", path = "transports/plaintext" } libp2p-plaintext = { version = "0.40.0", path = "transports/plaintext" }
libp2p-pnet = { version = "0.23.0", path = "transports/pnet" } libp2p-pnet = { version = "0.23.0", path = "transports/pnet" }
libp2p-quic = { version = "0.9.2-alpha", path = "transports/quic" } libp2p-quic = { version = "0.9.2", path = "transports/quic" }
libp2p-relay = { version = "0.16.1", path = "protocols/relay" } libp2p-relay = { version = "0.16.1", path = "protocols/relay" }
libp2p-rendezvous = { version = "0.13.0", path = "protocols/rendezvous" } libp2p-rendezvous = { version = "0.13.0", path = "protocols/rendezvous" }
libp2p-request-response = { version = "0.25.1", path = "protocols/request-response" } libp2p-request-response = { version = "0.25.1", path = "protocols/request-response" }

View File

@ -10,5 +10,4 @@ async-std = { version = "1.12", features = ["attributes"] }
async-trait = "0.1" async-trait = "0.1"
env_logger = "0.10.0" env_logger = "0.10.0"
futures = "0.3.28" futures = "0.3.28"
libp2p = { path = "../../libp2p", features = ["async-std", "gossipsub", "mdns", "noise", "macros", "tcp", "yamux"] } libp2p = { path = "../../libp2p", features = ["async-std", "gossipsub", "mdns", "noise", "macros", "tcp", "yamux", "quic"] }
libp2p-quic = { path = "../../transports/quic", features = ["async-std"] }

View File

@ -24,12 +24,11 @@ use async_std::io;
use futures::{future::Either, prelude::*, select}; use futures::{future::Either, prelude::*, select};
use libp2p::{ use libp2p::{
core::{muxing::StreamMuxerBox, transport::OrTransport, upgrade}, core::{muxing::StreamMuxerBox, transport::OrTransport, upgrade},
gossipsub, identity, mdns, noise, gossipsub, identity, mdns, noise, quic,
swarm::NetworkBehaviour, swarm::NetworkBehaviour,
swarm::{SwarmBuilder, SwarmEvent}, swarm::{SwarmBuilder, SwarmEvent},
tcp, yamux, PeerId, Transport, tcp, yamux, PeerId, Transport,
}; };
use libp2p_quic as quic;
use std::collections::hash_map::DefaultHasher; use std::collections::hash_map::DefaultHasher;
use std::error::Error; use std::error::Error;
use std::hash::{Hash, Hasher}; use std::hash::{Hash, Hasher};

View File

@ -10,6 +10,5 @@ clap = { version = "4.3.21", features = ["derive"] }
env_logger = "0.10.0" env_logger = "0.10.0"
futures = "0.3.28" futures = "0.3.28"
futures-timer = "3.0" futures-timer = "3.0"
libp2p = { path = "../../libp2p", features = ["async-std", "dns", "dcutr", "identify", "macros", "noise", "ping", "relay", "rendezvous", "tcp", "tokio", "yamux"] } libp2p = { path = "../../libp2p", features = ["async-std", "dns", "dcutr", "identify", "macros", "noise", "ping", "quic", "relay", "rendezvous", "tcp", "tokio", "yamux"] }
libp2p-quic = { path = "../../transports/quic", features = ["async-std"] }
log = "0.4" log = "0.4"

View File

@ -35,11 +35,10 @@ use libp2p::{
}, },
dcutr, dcutr,
dns::DnsConfig, dns::DnsConfig,
identify, identity, noise, ping, relay, identify, identity, noise, ping, quic, relay,
swarm::{NetworkBehaviour, SwarmBuilder, SwarmEvent}, swarm::{NetworkBehaviour, SwarmBuilder, SwarmEvent},
tcp, yamux, PeerId, tcp, yamux, PeerId,
}; };
use libp2p_quic as quic;
use log::info; use log::info;
use std::error::Error; use std::error::Error;
use std::str::FromStr; use std::str::FromStr;

View File

@ -11,5 +11,4 @@ async-std = { version = "1.12", features = ["attributes"] }
async-trait = "0.1" async-trait = "0.1"
env_logger = "0.10.0" env_logger = "0.10.0"
futures = "0.3.28" futures = "0.3.28"
libp2p = { path = "../../libp2p", features = ["async-std", "noise", "macros", "ping", "tcp", "identify", "yamux", "relay"] } libp2p = { path = "../../libp2p", features = ["async-std", "noise", "macros", "ping", "tcp", "identify", "yamux", "relay", "quic"] }
libp2p-quic = { path = "../../transports/quic", features = ["async-std"] }

View File

@ -31,11 +31,10 @@ use libp2p::{
core::{Multiaddr, Transport}, core::{Multiaddr, Transport},
identify, identity, identify, identity,
identity::PeerId, identity::PeerId,
noise, ping, relay, noise, ping, quic, relay,
swarm::{NetworkBehaviour, SwarmBuilder, SwarmEvent}, swarm::{NetworkBehaviour, SwarmBuilder, SwarmEvent},
tcp, tcp,
}; };
use libp2p_quic as quic;
use std::error::Error; use std::error::Error;
use std::net::{Ipv4Addr, Ipv6Addr}; use std::net::{Ipv4Addr, Ipv6Addr};

View File

@ -19,8 +19,7 @@ rand = "0.8.5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
axum = "0.6" axum = "0.6"
libp2p = { path = "../libp2p", features = ["ping", "noise", "tls", "rsa", "macros", "websocket", "tokio", "yamux", "tcp", "dns", "identify"] } libp2p = { path = "../libp2p", features = ["ping", "noise", "tls", "rsa", "macros", "websocket", "tokio", "yamux", "tcp", "dns", "identify", "quic"] }
libp2p-quic = { workspace = true, features = ["tokio"] }
libp2p-webrtc = { workspace = true, features = ["tokio"] } libp2p-webrtc = { workspace = true, features = ["tokio"] }
libp2p-mplex = { path = "../muxers/mplex" } libp2p-mplex = { path = "../muxers/mplex" }
mime_guess = "2.0" mime_guess = "2.0"

View File

@ -26,9 +26,8 @@ pub(crate) mod native {
use libp2p::identity::Keypair; use libp2p::identity::Keypair;
use libp2p::swarm::{NetworkBehaviour, SwarmBuilder}; use libp2p::swarm::{NetworkBehaviour, SwarmBuilder};
use libp2p::websocket::WsConfig; use libp2p::websocket::WsConfig;
use libp2p::{noise, tcp, tls, yamux, PeerId, Transport as _}; use libp2p::{noise, quic, tcp, tls, yamux, PeerId, Transport as _};
use libp2p_mplex as mplex; use libp2p_mplex as mplex;
use libp2p_quic as quic;
use libp2p_webrtc as webrtc; use libp2p_webrtc as webrtc;
use redis::AsyncCommands; use redis::AsyncCommands;

View File

@ -1,3 +1,7 @@
## 0.52.3 - unreleased
- Add `libp2p-quic` stable release.
## 0.52.2 ## 0.52.2
- Include gossipsub when compiling for wasm. - Include gossipsub when compiling for wasm.

View File

@ -3,7 +3,7 @@ name = "libp2p"
edition = "2021" edition = "2021"
rust-version = "1.65.0" rust-version = "1.65.0"
description = "Peer-to-peer networking library" description = "Peer-to-peer networking library"
version = "0.52.2" version = "0.52.3"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
license = "MIT" license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p" repository = "https://github.com/libp2p/rust-libp2p"
@ -33,6 +33,7 @@ full = [
"ping", "ping",
"plaintext", "plaintext",
"pnet", "pnet",
"quic",
"relay", "relay",
"rendezvous", "rendezvous",
"request-response", "request-response",
@ -51,7 +52,7 @@ full = [
"yamux", "yamux",
] ]
async-std = ["libp2p-swarm/async-std", "libp2p-mdns?/async-io", "libp2p-tcp?/async-io", "libp2p-dns?/async-std"] async-std = ["libp2p-swarm/async-std", "libp2p-mdns?/async-io", "libp2p-tcp?/async-io", "libp2p-dns?/async-std", "libp2p-quic?/async-std"]
autonat = ["dep:libp2p-autonat"] autonat = ["dep:libp2p-autonat"]
cbor = ["libp2p-request-response?/cbor"] cbor = ["libp2p-request-response?/cbor"]
dcutr = ["dep:libp2p-dcutr", "libp2p-metrics?/dcutr"] dcutr = ["dep:libp2p-dcutr", "libp2p-metrics?/dcutr"]
@ -72,6 +73,7 @@ noise = ["dep:libp2p-noise"]
ping = ["dep:libp2p-ping", "libp2p-metrics?/ping"] ping = ["dep:libp2p-ping", "libp2p-metrics?/ping"]
plaintext = ["dep:libp2p-plaintext"] plaintext = ["dep:libp2p-plaintext"]
pnet = ["dep:libp2p-pnet"] pnet = ["dep:libp2p-pnet"]
quic = ["dep:libp2p-quic"]
relay = ["dep:libp2p-relay", "libp2p-metrics?/relay"] relay = ["dep:libp2p-relay", "libp2p-metrics?/relay"]
rendezvous = ["dep:libp2p-rendezvous"] rendezvous = ["dep:libp2p-rendezvous"]
request-response = ["dep:libp2p-request-response"] request-response = ["dep:libp2p-request-response"]
@ -80,7 +82,7 @@ secp256k1 = ["libp2p-identity/secp256k1"]
serde = ["libp2p-core/serde", "libp2p-kad?/serde", "libp2p-gossipsub?/serde"] serde = ["libp2p-core/serde", "libp2p-kad?/serde", "libp2p-gossipsub?/serde"]
tcp = ["dep:libp2p-tcp"] tcp = ["dep:libp2p-tcp"]
tls = ["dep:libp2p-tls"] tls = ["dep:libp2p-tls"]
tokio = ["libp2p-swarm/tokio", "libp2p-mdns?/tokio", "libp2p-tcp?/tokio", "libp2p-dns?/tokio"] tokio = ["libp2p-swarm/tokio", "libp2p-mdns?/tokio", "libp2p-tcp?/tokio", "libp2p-dns?/tokio", "libp2p-quic?/tokio"]
uds = ["dep:libp2p-uds"] uds = ["dep:libp2p-uds"]
wasm-bindgen = ["futures-timer/wasm-bindgen", "instant/wasm-bindgen", "getrandom/js", "libp2p-swarm/wasm-bindgen", "libp2p-gossipsub?/wasm-bindgen"] wasm-bindgen = ["futures-timer/wasm-bindgen", "instant/wasm-bindgen", "getrandom/js", "libp2p-swarm/wasm-bindgen", "libp2p-gossipsub?/wasm-bindgen"]
wasm-ext = ["dep:libp2p-wasm-ext"] wasm-ext = ["dep:libp2p-wasm-ext"]
@ -127,6 +129,7 @@ libp2p-deflate = { workspace = true, optional = true }
libp2p-dns = { workspace = true, optional = true } libp2p-dns = { workspace = true, optional = true }
libp2p-mdns = { workspace = true, optional = true } libp2p-mdns = { workspace = true, optional = true }
libp2p-memory-connection-limits = { workspace = true, optional = true } libp2p-memory-connection-limits = { workspace = true, optional = true }
libp2p-quic = { workspace = true, optional = true }
libp2p-tcp = { workspace = true, optional = true } libp2p-tcp = { workspace = true, optional = true }
libp2p-tls = { workspace = true, optional = true } libp2p-tls = { workspace = true, optional = true }
libp2p-uds = { workspace = true, optional = true } libp2p-uds = { workspace = true, optional = true }

View File

@ -98,6 +98,9 @@ pub use libp2p_plaintext as plaintext;
#[cfg(feature = "pnet")] #[cfg(feature = "pnet")]
#[doc(inline)] #[doc(inline)]
pub use libp2p_pnet as pnet; pub use libp2p_pnet as pnet;
#[cfg(feature = "quic")]
#[cfg(not(target_arch = "wasm32"))]
pub use libp2p_quic as quic;
#[cfg(feature = "relay")] #[cfg(feature = "relay")]
#[doc(inline)] #[doc(inline)]
pub use libp2p_relay as relay; pub use libp2p_relay as relay;

View File

@ -1,3 +1,7 @@
## 0.9.2 - unreleased
- Cut stable release.
## 0.9.2-alpha ## 0.9.2-alpha
- Add support for reusing an existing socket when dialing localhost address. - Add support for reusing an existing socket when dialing localhost address.

View File

@ -1,6 +1,6 @@
[package] [package]
name = "libp2p-quic" name = "libp2p-quic"
version = "0.9.2-alpha" version = "0.9.2"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
edition = "2021" edition = "2021"
rust-version = { workspace = true } rust-version = { workspace = true }