Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(libp2p): remove deprecated mplex module #3920

Merged
merged 10 commits into from
May 15, 2023
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/ipfs-kad/Cargo.toml
Original file line number Diff line number Diff line change
@@ -10,4 +10,4 @@ async-std = { version = "1.12", features = ["attributes"] }
async-trait = "0.1"
env_logger = "0.10"
futures = "0.3.28"
libp2p = { path = "../../libp2p", features = ["async-std", "dns", "kad", "mplex", "noise", "tcp", "websocket", "yamux"] }
libp2p = { path = "../../libp2p", features = ["async-std", "dns", "kad", "noise", "tcp", "websocket", "yamux"] }
8 changes: 7 additions & 1 deletion libp2p/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -12,9 +12,15 @@

- Rename `NetworkBehaviour::OutEvent` to `NetworkBehaviour::ToSwarm`, `ConnectionHandler::InEvent` to `ConnectionHandler::FromBehaviour`, `ConnectionHandler::OutEvent` to `ConnectionHandler::ToBehaviour`. See [PR 3848].

[PR 3746]: https://github.com/libp2p/rust-libp2p/pull/3746
- Remove deprecated `mplex` module.
You can still depend on `libp2p-mplex` directly but we strongly encourage to migrate to `yamux`.
This also removes `mplex` from the `development_transport` and `tokio_development_transport` functions.
See [PR 3920].

[PR 3715]: https://github.com/libp2p/rust-libp2p/pull/3715
[PR 3746]: https://github.com/libp2p/rust-libp2p/pull/3746
[PR 3848]: https://github.com/libp2p/rust-libp2p/pull/3848
[PR 3920]: https://github.com/libp2p/rust-libp2p/pull/3920

## 0.51.3

4 changes: 0 additions & 4 deletions libp2p/Cargo.toml
Original file line number Diff line number Diff line change
@@ -26,7 +26,6 @@ full = [
"macros",
"mdns",
"metrics",
"mplex",
"noise",
"perf",
"ping",
@@ -65,7 +64,6 @@ kad = ["dep:libp2p-kad", "libp2p-metrics?/kad"]
macros = ["libp2p-swarm/macros"]
mdns = ["dep:libp2p-mdns"]
metrics = ["dep:libp2p-metrics"]
mplex = ["dep:libp2p-mplex"]
noise = ["dep:libp2p-noise"]
perf = ["dep:libp2p-perf"]
ping = ["dep:libp2p-ping", "libp2p-metrics?/ping"]
@@ -106,7 +104,6 @@ libp2p-identify = { workspace = true, optional = true }
libp2p-identity = { workspace = true }
libp2p-kad = { workspace = true, optional = true }
libp2p-metrics = { workspace = true, optional = true }
libp2p-mplex = { workspace = true, optional = true }
libp2p-noise = { workspace = true, optional = true }
libp2p-ping = { workspace = true, optional = true }
libp2p-plaintext = { workspace = true, optional = true }
@@ -144,7 +141,6 @@ env_logger = "0.10.0"
clap = { version = "4.1.6", features = ["derive"] }
tokio = { version = "1.15", features = ["io-util", "io-std", "macros", "rt", "rt-multi-thread"] }

libp2p-mplex = { workspace = true }
libp2p-noise = { workspace = true }
libp2p-tcp = { workspace = true, features = ["tokio"] }

25 changes: 4 additions & 21 deletions libp2p/src/lib.rs
Original file line number Diff line number Diff line change
@@ -82,13 +82,6 @@ pub use libp2p_mdns as mdns;
#[cfg(feature = "metrics")]
#[doc(inline)]
pub use libp2p_metrics as metrics;
#[cfg(feature = "mplex")]
#[deprecated(
note = "`mplex` is not recommended anymore. Please use `yamux` instead or depend on `libp2p-mplex` directly if you need it for legacy use cases."
)]
pub mod mplex {
pub use libp2p_mplex::*;
}
#[cfg(feature = "noise")]
#[doc(inline)]
pub use libp2p_noise as noise;
@@ -184,7 +177,7 @@ pub use libp2p_swarm::{Stream, StreamProtocol};
/// * DNS resolution.
/// * Noise protocol encryption.
/// * Websockets.
/// * Both Yamux and Mplex for substream multiplexing.
/// * Yamux for substream multiplexing.
///
/// All async I/O of the transport is based on `async-std`.
///
@@ -198,7 +191,6 @@ pub use libp2p_swarm::{Stream, StreamProtocol};
),
feature = "websocket",
feature = "noise",
feature = "mplex",
feature = "yamux"
))]
#[cfg_attr(
@@ -231,11 +223,7 @@ pub async fn development_transport(
Ok(transport
.upgrade(core::upgrade::Version::V1)
.authenticate(noise::Config::new(&keypair).unwrap())
.multiplex(core::upgrade::SelectUpgrade::new(
yamux::Config::default(),
#[allow(deprecated)]
mplex::MplexConfig::default(),
))
.multiplex(yamux::Config::default())
.timeout(std::time::Duration::from_secs(20))
.boxed())
}
@@ -245,7 +233,7 @@ pub async fn development_transport(
/// * DNS resolution.
/// * Noise protocol encryption.
/// * Websockets.
/// * Both Yamux and Mplex for substream multiplexing.
/// * Yamux for substream multiplexing.
///
/// All async I/O of the transport is based on `tokio`.
///
@@ -259,7 +247,6 @@ pub async fn development_transport(
),
feature = "websocket",
feature = "noise",
feature = "mplex",
feature = "yamux"
))]
#[cfg_attr(
@@ -288,11 +275,7 @@ pub fn tokio_development_transport(
Ok(transport
.upgrade(core::upgrade::Version::V1)
.authenticate(noise::Config::new(&keypair).unwrap())
.multiplex(core::upgrade::SelectUpgrade::new(
yamux::Config::default(),
#[allow(deprecated)]
mplex::MplexConfig::default(),
))
.multiplex(yamux::Config::default())
.timeout(std::time::Duration::from_secs(20))
.boxed())
}
4 changes: 2 additions & 2 deletions libp2p/src/transport_ext.rs
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ pub trait TransportExt: Transport {
/// # Example
///
/// ```
/// use libp2p_mplex as mplex;
/// use libp2p_yamux as yamux;
/// use libp2p_noise as noise;
/// use libp2p_tcp as tcp;
/// use libp2p::{
@@ -61,7 +61,7 @@ pub trait TransportExt: Transport {
/// noise::Config::new(&id_keys)
/// .expect("Signing libp2p-noise static DH keypair failed."),
/// )
/// .multiplex(mplex::MplexConfig::new())
/// .multiplex(yamux::Config::new())
/// .boxed();
///
/// let (transport, sinks) = transport.with_bandwidth_logging();
2 changes: 1 addition & 1 deletion libp2p/src/tutorials/ping.rs
Original file line number Diff line number Diff line change
@@ -55,7 +55,7 @@
//! edition = "2021"
//!
//! [dependencies]
//! libp2p = { version = "0.50", features = ["tcp", "dns", "async-std", "noise", "mplex", "yamux", "websocket", "ping", "macros"] }
//! libp2p = { version = "0.50", features = ["tcp", "dns", "async-std", "noise", "yamux", "websocket", "ping", "macros"] }
//! futures = "0.3.21"
//! async-std = { version = "1.12.0", features = ["attributes"] }
//! ```