From fff3b46c26e5629b9f5fbf7e911bf5819f1f379b Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 16:22:52 +0200 Subject: [PATCH 01/37] Add Websys Websocket transport --- Cargo.lock | 27 ++- Cargo.toml | 1 + libp2p/Cargo.toml | 4 + libp2p/src/lib.rs | 3 + transports/websys/CHANGELOG.md | 3 + transports/websys/Cargo.toml | 30 +++ transports/websys/src/lib.rs | 26 +++ transports/websys/src/websocket.rs | 316 +++++++++++++++++++++++++++++ 8 files changed, 407 insertions(+), 3 deletions(-) create mode 100644 transports/websys/CHANGELOG.md create mode 100644 transports/websys/Cargo.toml create mode 100644 transports/websys/src/lib.rs create mode 100644 transports/websys/src/websocket.rs diff --git a/Cargo.lock b/Cargo.lock index fb0bb3c8923..3415c8dccb8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1571,7 +1571,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" dependencies = [ "gloo-timers", - "send_wrapper", + "send_wrapper 0.4.0", ] [[package]] @@ -2200,6 +2200,7 @@ dependencies = [ "libp2p-wasm-ext", "libp2p-webrtc", "libp2p-websocket", + "libp2p-websys-transport", "libp2p-yamux", "multiaddr", "pin-project", @@ -2966,6 +2967,20 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "libp2p-websys-transport" +version = "0.1.6" +dependencies = [ + "futures", + "js-sys", + "libp2p-core", + "parking_lot 0.12.1", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "libp2p-yamux" version = "0.43.0" @@ -4345,6 +4360,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.157" @@ -5199,9 +5220,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 739a366a073..34a6e30276d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,5 +52,6 @@ members = [ "transports/wasm-ext", "transports/webrtc", "transports/websocket", + "transports/websys", ] resolver = "2" diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index 33176cfaf95..4c5ced9dbee 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -46,6 +46,7 @@ full = [ "wasm-bindgen", "wasm-ext", "wasm-ext-websocket", + "websys-websocket", "webrtc", "websocket", "yamux", @@ -85,6 +86,8 @@ uds = ["dep:libp2p-uds"] wasm-bindgen = ["futures-timer/wasm-bindgen", "instant/wasm-bindgen", "getrandom/js", "libp2p-swarm/wasm-bindgen"] wasm-ext = ["dep:libp2p-wasm-ext"] wasm-ext-websocket = ["wasm-ext", "libp2p-wasm-ext?/websocket"] +websys = ["dep:libp2p-websys-transport"] +websys-websocket = ["websys", "libp2p-websys-transport?/websocket"] webrtc = ["dep:libp2p-webrtc", "libp2p-webrtc?/pem"] websocket = ["dep:libp2p-websocket"] yamux = ["dep:libp2p-yamux"] @@ -116,6 +119,7 @@ libp2p-rendezvous = { version = "0.12.0", path = "../protocols/rendezvous", opti libp2p-request-response = { version = "0.24.0", path = "../protocols/request-response", optional = true } libp2p-swarm = { version = "0.42.0", path = "../swarm" } libp2p-wasm-ext = { version = "0.39.0", path = "../transports/wasm-ext", optional = true } +libp2p-websys-transport = { version = "0.1.6", path = "../transports/websys", optional = true } libp2p-yamux = { version = "0.43.0", path = "../muxers/yamux", optional = true } multiaddr = { version = "0.17.0" } pin-project = "1.0.0" diff --git a/libp2p/src/lib.rs b/libp2p/src/lib.rs index f453b5c28fd..5b3bdc1013a 100644 --- a/libp2p/src/lib.rs +++ b/libp2p/src/lib.rs @@ -134,6 +134,9 @@ pub use libp2p_uds as uds; #[cfg(feature = "wasm-ext")] #[doc(inline)] pub use libp2p_wasm_ext as wasm_ext; +#[cfg(feature = "websys")] +#[doc(inline)] +pub use libp2p_websys_transport as websys; #[cfg(feature = "webrtc")] #[cfg_attr(docsrs, doc(cfg(feature = "webrtc")))] #[cfg(not(target_arch = "wasm32"))] diff --git a/transports/websys/CHANGELOG.md b/transports/websys/CHANGELOG.md new file mode 100644 index 00000000000..3df66bfa924 --- /dev/null +++ b/transports/websys/CHANGELOG.md @@ -0,0 +1,3 @@ +# 0.1.6 - unreleased + +- Add Websys Websocket transport. diff --git a/transports/websys/Cargo.toml b/transports/websys/Cargo.toml new file mode 100644 index 00000000000..b93e876693e --- /dev/null +++ b/transports/websys/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "libp2p-websys-transport" +version = "0.1.6" +authors = ["Vince Vasta "] +description = "libp2p transports for WASM browser runtime." +repository = "https://github.com/libp2p/rust-libp2p" +license = "MIT" +edition = "2021" +keywords = ["peer-to-peer", "libp2p", "networking"] +categories = ["network-programming", "asynchronous"] + +[dependencies] +futures = "0.3.26" +js-sys = "0.3.61" +libp2p-core = { version = "0.39", path = "../../core" } +parking_lot = "0.12.1" +send_wrapper = "0.6.0" +thiserror = "1.0.38" +wasm-bindgen = "0.2.84" +web-sys = { version = "0.3.61", default-features = false } + +[features] +websocket = ["web-sys/BinaryType", "web-sys/CloseEvent", "web-sys/MessageEvent", "web-sys/WebSocket"] + +# Passing arguments to the docsrs builder in order to properly document cfg's. +# More information: https://docs.rs/about/builds#cross-compiling +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] +rustc-args = ["--cfg", "docsrs"] diff --git a/transports/websys/src/lib.rs b/transports/websys/src/lib.rs new file mode 100644 index 00000000000..b374413ce51 --- /dev/null +++ b/transports/websys/src/lib.rs @@ -0,0 +1,26 @@ +// Copyright (C) 2023 Vince Vasta +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//! Libp2p transports built on [Websys](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html). +#![warn(clippy::all, rust_2018_idioms)] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] + +#[cfg(feature = "websocket")] +pub mod websocket; diff --git a/transports/websys/src/websocket.rs b/transports/websys/src/websocket.rs new file mode 100644 index 00000000000..e1caa96281c --- /dev/null +++ b/transports/websys/src/websocket.rs @@ -0,0 +1,316 @@ +// Copyright (C) 2023 Vince Vasta +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +//! Libp2p websocket transports built on [Websys](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html). +use futures::{future::Ready, io, prelude::*}; +use libp2p_core::{ + multiaddr::{Multiaddr, Protocol}, + transport::{ListenerId, TransportError, TransportEvent}, +}; +use parking_lot::Mutex; +use send_wrapper::SendWrapper; +use wasm_bindgen::{prelude::*, JsCast}; +use web_sys::{MessageEvent, WebSocket}; + +use std::{ + collections::VecDeque, + pin::Pin, + sync::Arc, + task::Poll, + task::{Context, Waker}, +}; + +/** A Websocket transport that can be used in a Wasm client. + +## Example + +To create an authenticated transport instance with Noise protocol and Mplex: + +```no_run +let local_key = identity::Keypair::generate_ed25519(); +let transport = libp2p::websys::websocket::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key).unwrap()) + .multiplex(mplex::MplexConfig::default()) + .boxed(); +``` +*/ +#[derive(Default)] +pub struct Transport; + +impl libp2p_core::Transport for Transport { + type Output = Connection; + type Error = Error; + type ListenerUpgrade = Ready>; + type Dial = Pin> + Send>>; + + fn listen_on(&mut self, _addr: Multiaddr) -> Result> { + Err(TransportError::Other(Error::NotSupported)) + } + + fn remove_listener(&mut self, _id: ListenerId) -> bool { + false + } + + fn dial(&mut self, addr: Multiaddr) -> Result> { + let ws_url = if let Some(url) = websocket_url(addr) { + url + } else { + return Err(TransportError::Other(Error::NotSupported)); + }; + + Ok(async move { + let socket = match WebSocket::new(&ws_url) { + Ok(ws) => ws, + Err(err) => return Err(Error::JsError(format!("{err:?}"))), + }; + + Ok(Connection::new(socket)) + } + .boxed()) + } + + fn dial_as_listener( + &mut self, + _addr: Multiaddr, + ) -> Result> { + Err(TransportError::Other(Error::NotSupported)) + } + + fn poll( + self: Pin<&mut Self>, + _cx: &mut Context<'_>, + ) -> std::task::Poll> { + Poll::Pending + } + + fn address_translation(&self, _listen: &Multiaddr, _observed: &Multiaddr) -> Option { + None + } +} + +// Try to convert Multiaddr to a Websocket url. +fn websocket_url(addr: Multiaddr) -> Option { + let mut protocols = addr.iter(); + let host_port = match (protocols.next(), protocols.next()) { + (Some(Protocol::Ip4(ip)), Some(Protocol::Tcp(port))) => { + format!("{ip}:{port}") + } + (Some(Protocol::Ip6(ip)), Some(Protocol::Tcp(port))) => { + format!("[{ip}]:{port}") + } + (Some(Protocol::Dns(h)), Some(Protocol::Tcp(port))) + | (Some(Protocol::Dns4(h)), Some(Protocol::Tcp(port))) + | (Some(Protocol::Dns6(h)), Some(Protocol::Tcp(port))) + | (Some(Protocol::Dnsaddr(h)), Some(Protocol::Tcp(port))) => { + format!("{}:{}", &h, port) + } + _ => return None, + }; + + let (scheme, wspath) = match protocols.next() { + Some(Protocol::Ws(path)) => ("ws", path.into_owned()), + Some(Protocol::Wss(path)) => ("wss", path.into_owned()), + _ => return None, + }; + + // TODO: handle PeerId + Some(format!("{scheme}://{host_port}{wspath}")) +} + +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("js function error {0}")] + JsError(String), + #[error("operation not supported")] + NotSupported, +} + +/// A Websocket connection created by the [`Transport`]. +pub struct Connection { + /// We need to use Mutex as libp2p requires this to be Send. + shared: Arc>, +} + +struct Shared { + opened: bool, + closed: bool, + error: bool, + data: VecDeque, + waker: Option, + socket: SendWrapper, + closures: Option>, +} + +type Closures = ( + Closure, + Closure, + Closure, + Closure, +); + +impl Connection { + fn new(socket: WebSocket) -> Self { + socket.set_binary_type(web_sys::BinaryType::Arraybuffer); + + let shared = Arc::new(Mutex::new(Shared { + opened: false, + closed: false, + error: false, + data: VecDeque::with_capacity(1 << 16), + waker: None, + socket: SendWrapper::new(socket.clone()), + closures: None, + })); + + let open_callback = Closure::::new({ + let shared = shared.clone(); + move || { + let mut locked = shared.lock(); + locked.opened = true; + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } + } + }); + socket.set_onopen(Some(open_callback.as_ref().unchecked_ref())); + + let message_callback = Closure::::new({ + let shared = shared.clone(); + move |e: MessageEvent| { + if let Ok(abuf) = e.data().dyn_into::() { + let mut locked = shared.lock(); + let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); + locked.data.extend(bytes.into_iter()); + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } + } else { + panic!("Unexpected data format {:?}", e.data()); + } + } + }); + socket.set_onmessage(Some(message_callback.as_ref().unchecked_ref())); + + let error_callback = Closure::::new({ + let shared = shared.clone(); + move |_| { + // The error event for error callback doesn't give any information and + // generates error on the browser console we just signal it to the + // stream. + shared.lock().error = true; + } + }); + socket.set_onerror(Some(error_callback.as_ref().unchecked_ref())); + + let close_callback = Closure::::new({ + let shared = shared.clone(); + move |_| { + let mut locked = shared.lock(); + locked.closed = true; + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } + } + }); + socket.set_onclose(Some(close_callback.as_ref().unchecked_ref())); + + // Manage closures memory. + let closures = SendWrapper::new(( + open_callback, + message_callback, + error_callback, + close_callback, + )); + + shared.lock().closures = Some(closures); + + Self { shared } + } +} + +impl AsyncRead for Connection { + fn poll_read( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &mut [u8], + ) -> Poll> { + let mut shared = self.shared.lock(); + shared.waker = Some(cx.waker().clone()); + + if shared.error { + Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) + } else if shared.closed { + Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) + } else if shared.data.is_empty() { + Poll::Pending + } else { + let n = shared.data.len().min(buf.len()); + for k in buf.iter_mut().take(n) { + *k = shared.data.pop_front().unwrap(); + } + Poll::Ready(Ok(n)) + } + } +} + +impl AsyncWrite for Connection { + fn poll_write( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + let mut shared = self.shared.lock(); + shared.waker = Some(cx.waker().clone()); + + if shared.error { + Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) + } else if shared.closed { + Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) + } else if !shared.opened { + Poll::Pending + } else { + match shared.socket.send_with_u8_array(buf) { + Ok(()) => Poll::Ready(Ok(buf.len())), + Err(err) => Poll::Ready(Err(io::Error::new( + io::ErrorKind::Other, + format!("Write error: {err:?}"), + ))), + } + } + } + + fn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn poll_close(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { + Poll::Pending + } +} + +impl Drop for Connection { + fn drop(&mut self) { + let shared = self.shared.lock(); + if shared.opened { + let _ = shared.socket.close(); + } + } +} From f3874c73321cf2e2445a55e860523d105850887b Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 17:04:26 +0200 Subject: [PATCH 02/37] Add rust version --- transports/websys/Cargo.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/transports/websys/Cargo.toml b/transports/websys/Cargo.toml index b93e876693e..493cd309c08 100644 --- a/transports/websys/Cargo.toml +++ b/transports/websys/Cargo.toml @@ -1,11 +1,12 @@ [package] name = "libp2p-websys-transport" +edition = "2021" +rust-version = "1.60.0" +description = "libp2p transports for WASM browser runtime." version = "0.1.6" authors = ["Vince Vasta "] -description = "libp2p transports for WASM browser runtime." -repository = "https://github.com/libp2p/rust-libp2p" license = "MIT" -edition = "2021" +repository = "https://github.com/libp2p/rust-libp2p" keywords = ["peer-to-peer", "libp2p", "networking"] categories = ["network-programming", "asynchronous"] From 62ddf7fa151084528672a358b82883b8df52f720 Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 17:51:04 +0200 Subject: [PATCH 03/37] Fix docs test --- transports/websys/Cargo.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/transports/websys/Cargo.toml b/transports/websys/Cargo.toml index 493cd309c08..9548428e23e 100644 --- a/transports/websys/Cargo.toml +++ b/transports/websys/Cargo.toml @@ -23,6 +23,9 @@ web-sys = { version = "0.3.61", default-features = false } [features] websocket = ["web-sys/BinaryType", "web-sys/CloseEvent", "web-sys/MessageEvent", "web-sys/WebSocket"] +[dev-dependencies] +libp2p = { path = "../../libp2p", features = ["mplex", "noise", "websys-websocket"] } + # Passing arguments to the docsrs builder in order to properly document cfg's. # More information: https://docs.rs/about/builds#cross-compiling [package.metadata.docs.rs] From 3c0069bbb582ebc6c005eacdbcda11a1a441c72a Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 17:55:46 +0200 Subject: [PATCH 04/37] Fix docs test --- Cargo.lock | 1 + transports/websys/src/websocket.rs | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3415c8dccb8..2075ede89a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2973,6 +2973,7 @@ version = "0.1.6" dependencies = [ "futures", "js-sys", + "libp2p", "libp2p-core", "parking_lot 0.12.1", "send_wrapper 0.6.0", diff --git a/transports/websys/src/websocket.rs b/transports/websys/src/websocket.rs index e1caa96281c..e7fff126020 100644 --- a/transports/websys/src/websocket.rs +++ b/transports/websys/src/websocket.rs @@ -44,11 +44,12 @@ use std::{ To create an authenticated transport instance with Noise protocol and Mplex: ```no_run -let local_key = identity::Keypair::generate_ed25519(); +# use libp2p::{self, core::{Transport, upgrade::Version}}; +let local_key = libp2p::identity::Keypair::generate_ed25519(); let transport = libp2p::websys::websocket::Transport::default() .upgrade(Version::V1) - .authenticate(noise::NoiseAuthenticated::xx(&local_key).unwrap()) - .multiplex(mplex::MplexConfig::default()) + .authenticate(libp2p::noise::NoiseAuthenticated::xx(&local_key).unwrap()) + .multiplex(libp2p::mplex::MplexConfig::default()) .boxed(); ``` */ From 5a86d7c386cd0c425d1ddf1a6ba99c187129b9de Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 18:02:26 +0200 Subject: [PATCH 05/37] Include websys feature to full features. --- libp2p/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index 4c5ced9dbee..ac99787b649 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -46,6 +46,7 @@ full = [ "wasm-bindgen", "wasm-ext", "wasm-ext-websocket", + "websys", "websys-websocket", "webrtc", "websocket", From 50e38e355d3c6bbe45a1b597d71ca3e1b2106dfb Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 18:34:11 +0200 Subject: [PATCH 06/37] Fix semver error. --- transports/websys/CHANGELOG.md | 2 +- transports/websys/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/transports/websys/CHANGELOG.md b/transports/websys/CHANGELOG.md index 3df66bfa924..59ce439f863 100644 --- a/transports/websys/CHANGELOG.md +++ b/transports/websys/CHANGELOG.md @@ -1,3 +1,3 @@ -# 0.1.6 - unreleased +# 0.2.0 - unreleased - Add Websys Websocket transport. diff --git a/transports/websys/Cargo.toml b/transports/websys/Cargo.toml index 9548428e23e..8f9b9c5ba9b 100644 --- a/transports/websys/Cargo.toml +++ b/transports/websys/Cargo.toml @@ -3,7 +3,7 @@ name = "libp2p-websys-transport" edition = "2021" rust-version = "1.60.0" description = "libp2p transports for WASM browser runtime." -version = "0.1.6" +version = "0.2.0" authors = ["Vince Vasta "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p" From 25843d562ebb5fd7861185039420fbb631574ee9 Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 18:39:28 +0200 Subject: [PATCH 07/37] Fix semver error. --- Cargo.lock | 603 +++++++++++++++++++++++++--------------------- libp2p/Cargo.toml | 2 +- 2 files changed, 323 insertions(+), 282 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2075ede89a4..d5a730f0540 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,6 +27,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "aead" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +dependencies = [ + "crypto-common", + "generic-array", +] + [[package]] name = "aes" version = "0.6.0" @@ -51,17 +61,14 @@ dependencies = [ ] [[package]] -name = "aes-gcm" -version = "0.8.0" +name = "aes" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ - "aead 0.3.2", - "aes 0.6.0", - "cipher 0.2.5", - "ctr 0.6.0", - "ghash 0.3.1", - "subtle", + "cfg-if", + "cipher 0.4.4", + "cpufeatures", ] [[package]] @@ -78,6 +85,20 @@ dependencies = [ "subtle", ] +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead 0.5.1", + "aes 0.8.2", + "cipher 0.4.4", + "ctr 0.9.2", + "ghash 0.5.0", + "subtle", +] + [[package]] name = "aes-soft" version = "0.6.4" @@ -132,9 +153,9 @@ checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "arbitrary" -version = "1.2.3" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e90af4de65aa7b293ef2d09daff88501eb254f58edde2e1ac02c82d873eadad" +checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" [[package]] name = "arc-swap" @@ -144,9 +165,9 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -172,9 +193,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl", @@ -291,32 +312,31 @@ dependencies = [ [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.3", "slab", "socket2", "waker-fn", - "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", - "futures-lite", ] [[package]] @@ -394,19 +414,19 @@ dependencies = [ [[package]] name = "async-task" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.66" +version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.10", ] [[package]] @@ -450,7 +470,7 @@ name = "autonat-example" version = "0.1.0" dependencies = [ "async-std", - "clap 4.1.11", + "clap 4.1.13", "env_logger 0.10.0", "futures", "libp2p", @@ -482,15 +502,15 @@ checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bimap" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" [[package]] name = "bincode" @@ -507,12 +527,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitflags" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" - [[package]] name = "blake2" version = "0.10.6" @@ -533,9 +547,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -710,9 +724,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", @@ -724,7 +738,7 @@ version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ - "bitflags 1.3.2", + "bitflags", "clap_lex 0.2.4", "indexmap", "textwrap", @@ -732,13 +746,13 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.11" +version = "4.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" +checksum = "3c911b090850d79fc64fe9ea01e28e465f65e821e08813ced95bced72f7a8a9b" dependencies = [ - "bitflags 2.0.2", + "bitflags", "clap_derive", - "clap_lex 0.3.1", + "clap_lex 0.3.3", "is-terminal", "once_cell", "strsim", @@ -747,15 +761,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.1.9" +version = "4.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" +checksum = "9a932373bab67b984c790ddf2c9ca295d8e3af3b7ef92de5a5bacdccdee4b09b" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.10", ] [[package]] @@ -769,9 +782,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" +checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" dependencies = [ "os_str_bytes", ] @@ -801,9 +814,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "core-foundation" @@ -832,19 +845,13 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - [[package]] name = "crc" version = "3.0.1" @@ -907,9 +914,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -917,9 +924,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -928,22 +935,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.8.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -973,6 +980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "rand_core 0.6.4", "typenum", ] @@ -986,16 +994,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "crypto-mac" version = "0.11.1" @@ -1018,20 +1016,20 @@ dependencies = [ [[package]] name = "ctr" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.2.5", + "cipher 0.3.0", ] [[package]] name = "ctr" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.3.0", + "cipher 0.4.4", ] [[package]] @@ -1074,9 +1072,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -1084,9 +1082,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", @@ -1098,9 +1096,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", @@ -1137,7 +1135,7 @@ dependencies = [ name = "dcutr" version = "0.1.0" dependencies = [ - "clap 4.1.11", + "clap 4.1.13", "env_logger 0.10.0", "futures", "futures-timer", @@ -1172,11 +1170,11 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "displaydoc", "nom", "num-bigint", @@ -1230,7 +1228,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1260,9 +1258,9 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "ecdsa" @@ -1385,6 +1383,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "errno" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "errno-dragonfly" version = "0.1.2" @@ -1403,9 +1412,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -1422,9 +1431,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "93ace6ec7cc19c8ed33a32eaa9ea692d7faea05006b5356b9e2b668ec4bc3955" [[package]] name = "file-sharing" @@ -1432,7 +1441,7 @@ version = "0.1.0" dependencies = [ "async-std", "async-trait", - "clap 4.1.11", + "clap 4.1.13", "either", "env_logger 0.10.0", "futures", @@ -1628,22 +1637,22 @@ dependencies = [ [[package]] name = "ghash" -version = "0.3.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug", - "polyval 0.4.5", + "polyval 0.5.3", ] [[package]] name = "ghash" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug", - "polyval 0.5.3", + "polyval 0.6.0", ] [[package]] @@ -1671,9 +1680,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" dependencies = [ "bytes", "fnv", @@ -1733,6 +1742,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + [[package]] name = "hex" version = "0.4.3" @@ -1770,16 +1785,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.1", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.11.0" @@ -1823,9 +1828,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -1863,9 +1868,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.24" +version = "0.14.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" +checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" dependencies = [ "bytes", "futures-channel", @@ -1953,9 +1958,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2020,12 +2025,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.4" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" +checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -2072,14 +2078,14 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" -version = "0.4.2" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.1", "io-lifetimes", - "rustix", - "windows-sys 0.42.0", + "rustix 0.36.11", + "windows-sys 0.45.0", ] [[package]] @@ -2093,9 +2099,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" @@ -2120,7 +2126,7 @@ name = "keygen" version = "0.1.0" dependencies = [ "base64 0.21.0", - "clap 4.1.11", + "clap 4.1.13", "libp2p-core", "libp2p-identity", "serde", @@ -2162,7 +2168,7 @@ dependencies = [ "async-std", "async-trait", "bytes", - "clap 4.1.11", + "clap 4.1.13", "either", "env_logger 0.10.0", "futures", @@ -2294,7 +2300,7 @@ version = "0.9.1" dependencies = [ "async-std", "asynchronous-codec", - "clap 4.1.11", + "clap 4.1.13", "either", "env_logger 0.10.0", "futures", @@ -2606,7 +2612,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-std", - "clap 4.1.11", + "clap 4.1.13", "env_logger 0.10.0", "futures", "instant", @@ -2824,7 +2830,7 @@ version = "0.32.0" dependencies = [ "heck", "quote", - "syn 2.0.2", + "syn 2.0.10", ] [[package]] @@ -2969,7 +2975,7 @@ dependencies = [ [[package]] name = "libp2p-websys-transport" -version = "0.1.6" +version = "0.2.0" dependencies = [ "futures", "js-sys", @@ -3066,6 +3072,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "linux-raw-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" + [[package]] name = "lock_api" version = "0.4.9" @@ -3142,9 +3154,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] @@ -3166,25 +3178,26 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "multiaddr" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b53e0cc5907a5c216ba6584bf74be8ab47d6d6289f72793b2dddbf15dc3bf8c" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" dependencies = [ "arrayref", "byteorder", "data-encoding", + "log", "multibase", "multihash", "percent-encoding", @@ -3278,7 +3291,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags 1.3.2", + "bitflags", "byteorder", "libc", "netlink-packet-core", @@ -3314,9 +3327,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "async-io", "bytes", @@ -3332,7 +3345,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg-if", "libc", "memoffset 0.6.5", @@ -3409,7 +3422,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", ] [[package]] @@ -3432,9 +3445,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "p256" @@ -3510,7 +3523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.6", + "parking_lot_core 0.9.7", ] [[package]] @@ -3529,22 +3542,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "pem" @@ -3671,16 +3684,18 @@ dependencies = [ [[package]] name = "polling" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" dependencies = [ "autocfg", + "bitflags", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite 0.2.9", + "windows-sys 0.45.0", ] [[package]] @@ -3691,30 +3706,31 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] name = "polyval" -version = "0.4.5" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cpuid-bool", + "cfg-if", + "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] name = "polyval" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash", + "universal-hash 0.5.0", ] [[package]] @@ -3768,9 +3784,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" dependencies = [ "unicode-ident", ] @@ -3977,9 +3993,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -3987,9 +4003,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -4047,14 +4063,14 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] name = "regex" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", @@ -4063,9 +4079,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "relay-server-example" @@ -4073,7 +4089,7 @@ version = "0.1.0" dependencies = [ "async-std", "async-trait", - "clap 4.1.11", + "clap 4.1.13", "env_logger 0.10.0", "futures", "libp2p", @@ -4217,16 +4233,30 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.7" +version = "0.36.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" +checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" dependencies = [ - "bitflags 1.3.2", - "errno", + "bitflags", + "errno 0.2.8", "io-lifetimes", "libc", - "linux-raw-sys", - "windows-sys 0.42.0", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +dependencies = [ + "bitflags", + "errno 0.3.0", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.0", + "windows-sys 0.45.0", ] [[package]] @@ -4275,9 +4305,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "salsa20" @@ -4285,7 +4315,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.4.3", + "cipher 0.4.4", ] [[package]] @@ -4351,9 +4381,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" [[package]] name = "send_wrapper" @@ -4369,9 +4399,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.157" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707de5fcf5df2b5788fca98dd7eab490bc2fd9b7ef1404defc462833b83f25ca" +checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" dependencies = [ "serde_derive", ] @@ -4387,13 +4417,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.157" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78997f4555c22a7971214540c4a661291970619afd56de19f77e0de86296e1e5" +checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.2", + "syn 2.0.10", ] [[package]] @@ -4420,6 +4450,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + [[package]] name = "sha2" version = "0.9.9" @@ -4456,9 +4497,9 @@ dependencies = [ [[package]] name = "signal-hook" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" dependencies = [ "libc", "signal-hook-registry", @@ -4466,9 +4507,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -4495,9 +4536,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -4544,9 +4585,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -4643,9 +4684,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.2" +version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d3276aee1fa0c33612917969b5172b5be2db051232a6e4826f1a1a9191b045" +checksum = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40" dependencies = [ "proc-macro2", "quote", @@ -4670,7 +4711,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -4694,7 +4735,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall", - "rustix", + "rustix 0.36.11", "windows-sys 0.42.0", ] @@ -4730,14 +4771,14 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.2", + "syn 2.0.10", ] [[package]] name = "time" -version = "0.3.17" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "itoa", "serde", @@ -4753,9 +4794,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" dependencies = [ "time-core", ] @@ -4781,9 +4822,9 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" @@ -4991,15 +5032,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -5026,6 +5067,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "unsigned-varint" version = "0.7.1" @@ -5055,9 +5106,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom 0.2.8", ] @@ -5107,12 +5158,11 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -5317,22 +5367,22 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7021987ae0a2ed6c8cd33f68e98e49bb6e74ffe9543310267b48a1bbe3900e5f" +checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.8.0", + "aes-gcm 0.10.1", "async-trait", "bincode", "block-modes", "byteorder", "ccm", "curve25519-dalek 3.2.0", - "der-parser 8.1.0", + "der-parser 8.2.0", "elliptic-curve", "hkdf", - "hmac 0.10.1", + "hmac 0.12.1", "log", "oid-registry 0.6.1", "p256 0.11.1", @@ -5345,8 +5395,8 @@ dependencies = [ "rustls 0.19.1", "sec1", "serde", - "sha-1", - "sha2 0.9.9", + "sha1", + "sha2 0.10.6", "signature 1.6.4", "subtle", "thiserror", @@ -5359,9 +5409,9 @@ dependencies = [ [[package]] name = "webrtc-ice" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494483fbb2f5492620871fdc78b084aed8807377f6e3fe88b2e49f0a9c9c41d7" +checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" dependencies = [ "arc-swap", "async-trait", @@ -5458,7 +5508,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags 1.3.2", + "bitflags", "bytes", "cc", "ipnet", @@ -5472,15 +5522,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "widestring" version = "0.5.1" @@ -5538,12 +5579,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -5557,24 +5598,24 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" @@ -5584,9 +5625,9 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" @@ -5596,9 +5637,9 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" @@ -5608,9 +5649,9 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" @@ -5620,15 +5661,15 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" @@ -5638,9 +5679,9 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "winreg" @@ -5698,9 +5739,9 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bab0c2f54ae1d92f4fcb99c0b7ccf0b1e3451cbd395e5f115ccbdbcb18d4f634" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "data-encoding", - "der-parser 8.1.0", + "der-parser 8.2.0", "lazy_static", "nom", "oid-registry 0.6.1", diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index ac99787b649..c4be3eb6905 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -120,7 +120,7 @@ libp2p-rendezvous = { version = "0.12.0", path = "../protocols/rendezvous", opti libp2p-request-response = { version = "0.24.0", path = "../protocols/request-response", optional = true } libp2p-swarm = { version = "0.42.0", path = "../swarm" } libp2p-wasm-ext = { version = "0.39.0", path = "../transports/wasm-ext", optional = true } -libp2p-websys-transport = { version = "0.1.6", path = "../transports/websys", optional = true } +libp2p-websys-transport = { version = "0.2.0", path = "../transports/websys", optional = true } libp2p-yamux = { version = "0.43.0", path = "../muxers/yamux", optional = true } multiaddr = { version = "0.17.0" } pin-project = "1.0.0" From f794aeee886ffc3c3974c2e716b2cc153e465a19 Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 26 Mar 2023 19:20:19 +0200 Subject: [PATCH 08/37] Don't use libp2p in dev-dependencies --- Cargo.lock | 605 ++++++++++++++--------------- transports/websys/Cargo.toml | 4 +- transports/websys/src/websocket.rs | 14 +- 3 files changed, 295 insertions(+), 328 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d5a730f0540..ffc5e50736f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,16 +27,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "aead" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" -dependencies = [ - "crypto-common", - "generic-array", -] - [[package]] name = "aes" version = "0.6.0" @@ -61,14 +51,17 @@ dependencies = [ ] [[package]] -name = "aes" -version = "0.8.2" +name = "aes-gcm" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", + "aead 0.3.2", + "aes 0.6.0", + "cipher 0.2.5", + "ctr 0.6.0", + "ghash 0.3.1", + "subtle", ] [[package]] @@ -85,20 +78,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "aes-gcm" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" -dependencies = [ - "aead 0.5.1", - "aes 0.8.2", - "cipher 0.4.4", - "ctr 0.9.2", - "ghash 0.5.0", - "subtle", -] - [[package]] name = "aes-soft" version = "0.6.4" @@ -153,9 +132,9 @@ checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "3e90af4de65aa7b293ef2d09daff88501eb254f58edde2e1ac02c82d873eadad" [[package]] name = "arc-swap" @@ -165,9 +144,9 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" @@ -193,9 +172,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl", @@ -312,31 +291,32 @@ dependencies = [ [[package]] name = "async-io" -version = "1.13.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", "autocfg", - "cfg-if", "concurrent-queue", "futures-lite", + "libc", "log", "parking", "polling", - "rustix 0.37.3", "slab", "socket2", "waker-fn", + "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.7.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" dependencies = [ "event-listener", + "futures-lite", ] [[package]] @@ -414,19 +394,19 @@ dependencies = [ [[package]] name = "async-task" -version = "4.4.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 1.0.109", ] [[package]] @@ -470,7 +450,7 @@ name = "autonat-example" version = "0.1.0" dependencies = [ "async-std", - "clap 4.1.13", + "clap 4.1.11", "env_logger 0.10.0", "futures", "libp2p", @@ -502,15 +482,15 @@ checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" [[package]] name = "bimap" -version = "0.6.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" [[package]] name = "bincode" @@ -527,6 +507,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" + [[package]] name = "blake2" version = "0.10.6" @@ -547,9 +533,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -724,9 +710,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" dependencies = [ "crypto-common", "inout", @@ -738,7 +724,7 @@ version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ - "bitflags", + "bitflags 1.3.2", "clap_lex 0.2.4", "indexmap", "textwrap", @@ -746,13 +732,13 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.13" +version = "4.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c911b090850d79fc64fe9ea01e28e465f65e821e08813ced95bced72f7a8a9b" +checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" dependencies = [ - "bitflags", + "bitflags 2.0.2", "clap_derive", - "clap_lex 0.3.3", + "clap_lex 0.3.1", "is-terminal", "once_cell", "strsim", @@ -761,14 +747,15 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.1.12" +version = "4.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a932373bab67b984c790ddf2c9ca295d8e3af3b7ef92de5a5bacdccdee4b09b" +checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" dependencies = [ "heck", + "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.10", + "syn 1.0.109", ] [[package]] @@ -782,9 +769,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" +checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" dependencies = [ "os_str_bytes", ] @@ -814,9 +801,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" [[package]] name = "core-foundation" @@ -845,13 +832,19 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.6" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + [[package]] name = "crc" version = "3.0.1" @@ -914,9 +907,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if", "crossbeam-utils", @@ -924,9 +917,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -935,22 +928,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.7.1", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if", ] @@ -980,7 +973,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] @@ -994,6 +986,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "crypto-mac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "crypto-mac" version = "0.11.1" @@ -1016,20 +1018,20 @@ dependencies = [ [[package]] name = "ctr" -version = "0.8.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "cipher 0.3.0", + "cipher 0.2.5", ] [[package]] name = "ctr" -version = "0.9.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.4.4", + "cipher 0.3.0", ] [[package]] @@ -1072,9 +1074,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" dependencies = [ "darling_core", "darling_macro", @@ -1082,9 +1084,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" dependencies = [ "fnv", "ident_case", @@ -1096,9 +1098,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" dependencies = [ "darling_core", "quote", @@ -1135,7 +1137,7 @@ dependencies = [ name = "dcutr" version = "0.1.0" dependencies = [ - "clap 4.1.13", + "clap 4.1.11", "env_logger 0.10.0", "futures", "futures-timer", @@ -1170,11 +1172,11 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.2.0" +version = "8.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs 0.5.1", "displaydoc", "nom", "num-bigint", @@ -1228,7 +1230,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.4", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -1258,9 +1260,9 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" +checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" [[package]] name = "ecdsa" @@ -1383,17 +1385,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "errno" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.45.0", -] - [[package]] name = "errno-dragonfly" version = "0.1.2" @@ -1412,9 +1403,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -1431,9 +1422,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.19" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ace6ec7cc19c8ed33a32eaa9ea692d7faea05006b5356b9e2b668ec4bc3955" +checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" [[package]] name = "file-sharing" @@ -1441,7 +1432,7 @@ version = "0.1.0" dependencies = [ "async-std", "async-trait", - "clap 4.1.13", + "clap 4.1.11", "either", "env_logger 0.10.0", "futures", @@ -1637,22 +1628,22 @@ dependencies = [ [[package]] name = "ghash" -version = "0.4.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" dependencies = [ "opaque-debug", - "polyval 0.5.3", + "polyval 0.4.5", ] [[package]] name = "ghash" -version = "0.5.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug", - "polyval 0.6.0", + "polyval 0.5.3", ] [[package]] @@ -1680,9 +1671,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.16" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ "bytes", "fnv", @@ -1742,12 +1733,6 @@ dependencies = [ "libc", ] -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - [[package]] name = "hex" version = "0.4.3" @@ -1785,6 +1770,16 @@ dependencies = [ "digest 0.9.0", ] +[[package]] +name = "hmac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +dependencies = [ + "crypto-mac 0.10.1", + "digest 0.9.0", +] + [[package]] name = "hmac" version = "0.11.0" @@ -1828,9 +1823,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -1868,9 +1863,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.25" +version = "0.14.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" dependencies = [ "bytes", "futures-channel", @@ -1958,9 +1953,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.3" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2025,13 +2020,12 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.9" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" +checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" dependencies = [ - "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] @@ -2078,14 +2072,14 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" -version = "0.4.5" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" +checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.2.6", "io-lifetimes", - "rustix 0.36.11", - "windows-sys 0.45.0", + "rustix", + "windows-sys 0.42.0", ] [[package]] @@ -2099,9 +2093,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "js-sys" @@ -2126,7 +2120,7 @@ name = "keygen" version = "0.1.0" dependencies = [ "base64 0.21.0", - "clap 4.1.13", + "clap 4.1.11", "libp2p-core", "libp2p-identity", "serde", @@ -2168,7 +2162,7 @@ dependencies = [ "async-std", "async-trait", "bytes", - "clap 4.1.13", + "clap 4.1.11", "either", "env_logger 0.10.0", "futures", @@ -2300,7 +2294,7 @@ version = "0.9.1" dependencies = [ "async-std", "asynchronous-codec", - "clap 4.1.13", + "clap 4.1.11", "either", "env_logger 0.10.0", "futures", @@ -2612,7 +2606,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-std", - "clap 4.1.13", + "clap 4.1.11", "env_logger 0.10.0", "futures", "instant", @@ -2830,7 +2824,7 @@ version = "0.32.0" dependencies = [ "heck", "quote", - "syn 2.0.10", + "syn 2.0.2", ] [[package]] @@ -2979,8 +2973,10 @@ version = "0.2.0" dependencies = [ "futures", "js-sys", - "libp2p", "libp2p-core", + "libp2p-identity", + "libp2p-mplex", + "libp2p-noise", "parking_lot 0.12.1", "send_wrapper 0.6.0", "thiserror", @@ -3072,12 +3068,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" -[[package]] -name = "linux-raw-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" - [[package]] name = "lock_api" version = "0.4.9" @@ -3154,9 +3144,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.8.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ "autocfg", ] @@ -3178,26 +3168,25 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "multiaddr" -version = "0.17.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +checksum = "3b53e0cc5907a5c216ba6584bf74be8ab47d6d6289f72793b2dddbf15dc3bf8c" dependencies = [ "arrayref", "byteorder", "data-encoding", - "log", "multibase", "multihash", "percent-encoding", @@ -3291,7 +3280,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -3327,9 +3316,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" dependencies = [ "async-io", "bytes", @@ -3345,7 +3334,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -3422,7 +3411,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs 0.5.1", ] [[package]] @@ -3445,9 +3434,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "os_str_bytes" -version = "6.5.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "p256" @@ -3523,7 +3512,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.6", ] [[package]] @@ -3542,22 +3531,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "paste" -version = "1.0.12" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" [[package]] name = "pem" @@ -3684,18 +3673,16 @@ dependencies = [ [[package]] name = "polling" -version = "2.6.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" +checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", - "bitflags", "cfg-if", - "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.9", - "windows-sys 0.45.0", + "wepoll-ffi", + "windows-sys 0.42.0", ] [[package]] @@ -3706,31 +3693,30 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash 0.4.1", + "universal-hash", ] [[package]] name = "polyval" -version = "0.5.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" dependencies = [ - "cfg-if", - "cpufeatures", + "cpuid-bool", "opaque-debug", - "universal-hash 0.4.1", + "universal-hash", ] [[package]] name = "polyval" -version = "0.6.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash 0.5.0", + "universal-hash", ] [[package]] @@ -3784,9 +3770,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.53" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" +checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" dependencies = [ "unicode-ident", ] @@ -3993,9 +3979,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ "either", "rayon-core", @@ -4003,9 +3989,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -4063,14 +4049,14 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.7.3" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -4079,9 +4065,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "relay-server-example" @@ -4089,7 +4075,7 @@ version = "0.1.0" dependencies = [ "async-std", "async-trait", - "clap 4.1.13", + "clap 4.1.11", "env_logger 0.10.0", "futures", "libp2p", @@ -4233,30 +4219,16 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.11" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" +checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ - "bitflags", - "errno 0.2.8", + "bitflags 1.3.2", + "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" -dependencies = [ - "bitflags", - "errno 0.3.0", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.0", - "windows-sys 0.45.0", + "linux-raw-sys", + "windows-sys 0.42.0", ] [[package]] @@ -4305,9 +4277,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "salsa20" @@ -4315,7 +4287,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.4.4", + "cipher 0.4.3", ] [[package]] @@ -4381,9 +4353,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" [[package]] name = "send_wrapper" @@ -4399,9 +4371,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.158" +version = "1.0.157" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +checksum = "707de5fcf5df2b5788fca98dd7eab490bc2fd9b7ef1404defc462833b83f25ca" dependencies = [ "serde_derive", ] @@ -4417,13 +4389,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.158" +version = "1.0.157" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +checksum = "78997f4555c22a7971214540c4a661291970619afd56de19f77e0de86296e1e5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.2", ] [[package]] @@ -4450,17 +4422,6 @@ dependencies = [ "opaque-debug", ] -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - [[package]] name = "sha2" version = "0.9.9" @@ -4497,9 +4458,9 @@ dependencies = [ [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" dependencies = [ "libc", "signal-hook-registry", @@ -4507,9 +4468,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ "libc", ] @@ -4536,9 +4497,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ "autocfg", ] @@ -4585,9 +4546,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -4684,9 +4645,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.10" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40" +checksum = "59d3276aee1fa0c33612917969b5172b5be2db051232a6e4826f1a1a9191b045" dependencies = [ "proc-macro2", "quote", @@ -4711,7 +4672,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -4735,7 +4696,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall", - "rustix 0.36.11", + "rustix", "windows-sys 0.42.0", ] @@ -4771,14 +4732,14 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.2", ] [[package]] name = "time" -version = "0.3.20" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" dependencies = [ "itoa", "serde", @@ -4794,9 +4755,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" dependencies = [ "time-core", ] @@ -4822,9 +4783,9 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" @@ -5032,15 +4993,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-normalization" @@ -5067,16 +5028,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "universal-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" -dependencies = [ - "crypto-common", - "subtle", -] - [[package]] name = "unsigned-varint" version = "0.7.1" @@ -5106,9 +5057,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" dependencies = [ "getrandom 0.2.8", ] @@ -5158,11 +5109,12 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", + "winapi", "winapi-util", ] @@ -5367,22 +5319,22 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" +checksum = "7021987ae0a2ed6c8cd33f68e98e49bb6e74ffe9543310267b48a1bbe3900e5f" dependencies = [ "aes 0.6.0", - "aes-gcm 0.10.1", + "aes-gcm 0.8.0", "async-trait", "bincode", "block-modes", "byteorder", "ccm", "curve25519-dalek 3.2.0", - "der-parser 8.2.0", + "der-parser 8.1.0", "elliptic-curve", "hkdf", - "hmac 0.12.1", + "hmac 0.10.1", "log", "oid-registry 0.6.1", "p256 0.11.1", @@ -5395,8 +5347,8 @@ dependencies = [ "rustls 0.19.1", "sec1", "serde", - "sha1", - "sha2 0.10.6", + "sha-1", + "sha2 0.9.9", "signature 1.6.4", "subtle", "thiserror", @@ -5409,9 +5361,9 @@ dependencies = [ [[package]] name = "webrtc-ice" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" +checksum = "494483fbb2f5492620871fdc78b084aed8807377f6e3fe88b2e49f0a9c9c41d7" dependencies = [ "arc-swap", "async-trait", @@ -5508,7 +5460,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -5522,6 +5474,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + [[package]] name = "widestring" version = "0.5.1" @@ -5579,12 +5540,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.2", + "windows_x86_64_msvc 0.42.1", ] [[package]] @@ -5598,24 +5559,24 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.2", + "windows_x86_64_msvc 0.42.1", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" @@ -5625,9 +5586,9 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" @@ -5637,9 +5598,9 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" @@ -5649,9 +5610,9 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" @@ -5661,15 +5622,15 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" @@ -5679,9 +5640,9 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -5739,9 +5700,9 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bab0c2f54ae1d92f4fcb99c0b7ccf0b1e3451cbd395e5f115ccbdbcb18d4f634" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs 0.5.1", "data-encoding", - "der-parser 8.2.0", + "der-parser 8.1.0", "lazy_static", "nom", "oid-registry 0.6.1", diff --git a/transports/websys/Cargo.toml b/transports/websys/Cargo.toml index 8f9b9c5ba9b..c74df8278d3 100644 --- a/transports/websys/Cargo.toml +++ b/transports/websys/Cargo.toml @@ -24,7 +24,9 @@ web-sys = { version = "0.3.61", default-features = false } websocket = ["web-sys/BinaryType", "web-sys/CloseEvent", "web-sys/MessageEvent", "web-sys/WebSocket"] [dev-dependencies] -libp2p = { path = "../../libp2p", features = ["mplex", "noise", "websys-websocket"] } +libp2p-mplex = { path = "../../muxers/mplex" } +libp2p-identity = { path = "../../identity" } +libp2p-noise = { path = "../noise" } # Passing arguments to the docsrs builder in order to properly document cfg's. # More information: https://docs.rs/about/builds#cross-compiling diff --git a/transports/websys/src/websocket.rs b/transports/websys/src/websocket.rs index e7fff126020..a6b99d59907 100644 --- a/transports/websys/src/websocket.rs +++ b/transports/websys/src/websocket.rs @@ -44,12 +44,16 @@ use std::{ To create an authenticated transport instance with Noise protocol and Mplex: ```no_run -# use libp2p::{self, core::{Transport, upgrade::Version}}; -let local_key = libp2p::identity::Keypair::generate_ed25519(); -let transport = libp2p::websys::websocket::Transport::default() +# use libp2p_core::{upgrade::Version, Transport}; +# use libp2p_identity::Keypair; +# use libp2p_mplex::MplexConfig; +# use libp2p_noise::NoiseAuthenticated; +# use libp2p_websys_transport::websocket; +let local_key = Keypair::generate_ed25519(); +let transport = websocket::Transport::default() .upgrade(Version::V1) - .authenticate(libp2p::noise::NoiseAuthenticated::xx(&local_key).unwrap()) - .multiplex(libp2p::mplex::MplexConfig::default()) + .authenticate(NoiseAuthenticated::xx(&local_key).unwrap()) + .multiplex(MplexConfig::default()) .boxed(); ``` */ From b8503e000c195c7181b537fd706bde1bef8f140d Mon Sep 17 00:00:00 2001 From: Vince Date: Mon, 27 Mar 2023 10:31:40 +0200 Subject: [PATCH 09/37] Add deprecation warning for wasm-ext. --- transports/wasm-ext/src/lib.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/transports/wasm-ext/src/lib.rs b/transports/wasm-ext/src/lib.rs index 164cbff45c3..66e416bb698 100644 --- a/transports/wasm-ext/src/lib.rs +++ b/transports/wasm-ext/src/lib.rs @@ -33,6 +33,10 @@ //! #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +#![deprecated( + since = "0.39.0", + note = "`wasm-ext` is deprecated and will be removed in favor of `libp2p-websys-transport`." +)] use futures::{future::Ready, prelude::*, ready, stream::SelectAll}; use libp2p_core::{ From 378c03fb8c2e7e92134787a25bc61d115324d49b Mon Sep 17 00:00:00 2001 From: Vince Date: Mon, 27 Mar 2023 10:58:10 +0200 Subject: [PATCH 10/37] Fix clippy error for wasm-ext deprecation --- libp2p/src/lib.rs | 10 ++++++++-- transports/wasm-ext/src/lib.rs | 4 ---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libp2p/src/lib.rs b/libp2p/src/lib.rs index 5b3bdc1013a..d48e0db2f2b 100644 --- a/libp2p/src/lib.rs +++ b/libp2p/src/lib.rs @@ -132,8 +132,14 @@ pub use libp2p_tls as tls; #[doc(inline)] pub use libp2p_uds as uds; #[cfg(feature = "wasm-ext")] -#[doc(inline)] -pub use libp2p_wasm_ext as wasm_ext; +#[deprecated( + since = "0.39.0", + note = "`wasm-ext` is deprecated and will be removed in favor of `libp2p-websys-transport`." +)] +pub mod wasm_ext { + #[doc(inline)] + pub use libp2p_wasm_ext::*; +} #[cfg(feature = "websys")] #[doc(inline)] pub use libp2p_websys_transport as websys; diff --git a/transports/wasm-ext/src/lib.rs b/transports/wasm-ext/src/lib.rs index 66e416bb698..164cbff45c3 100644 --- a/transports/wasm-ext/src/lib.rs +++ b/transports/wasm-ext/src/lib.rs @@ -33,10 +33,6 @@ //! #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] -#![deprecated( - since = "0.39.0", - note = "`wasm-ext` is deprecated and will be removed in favor of `libp2p-websys-transport`." -)] use futures::{future::Ready, prelude::*, ready, stream::SelectAll}; use libp2p_core::{ From d5912c51d7f10537ee77528f772630de4c0a48d1 Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 2 Apr 2023 16:42:51 +0200 Subject: [PATCH 11/37] Rename transport package --- Cargo.lock | 4 +- Cargo.toml | 2 +- libp2p/Cargo.toml | 6 +-- libp2p/src/lib.rs | 4 +- .../{websys => websys-websocket}/CHANGELOG.md | 0 .../{websys => websys-websocket}/Cargo.toml | 15 ++++--- .../src/lib.rs} | 40 +++++++++---------- transports/websys/src/lib.rs | 26 ------------ 8 files changed, 37 insertions(+), 60 deletions(-) rename transports/{websys => websys-websocket}/CHANGELOG.md (100%) rename transports/{websys => websys-websocket}/Cargo.toml (77%) rename transports/{websys/src/websocket.rs => websys-websocket/src/lib.rs} (93%) delete mode 100644 transports/websys/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 2d581804eb1..24381827ddc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2200,7 +2200,7 @@ dependencies = [ "libp2p-wasm-ext", "libp2p-webrtc", "libp2p-websocket", - "libp2p-websys-transport", + "libp2p-websys-websocket", "libp2p-yamux", "multiaddr", "pin-project", @@ -2968,7 +2968,7 @@ dependencies = [ ] [[package]] -name = "libp2p-websys-transport" +name = "libp2p-websys-websocket" version = "0.2.0" dependencies = [ "futures", diff --git a/Cargo.toml b/Cargo.toml index 34a6e30276d..5fb5256cac8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,6 +52,6 @@ members = [ "transports/wasm-ext", "transports/webrtc", "transports/websocket", - "transports/websys", + "transports/websys-websocket", ] resolver = "2" diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index c4be3eb6905..e6fc00d9f86 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -46,7 +46,6 @@ full = [ "wasm-bindgen", "wasm-ext", "wasm-ext-websocket", - "websys", "websys-websocket", "webrtc", "websocket", @@ -87,8 +86,7 @@ uds = ["dep:libp2p-uds"] wasm-bindgen = ["futures-timer/wasm-bindgen", "instant/wasm-bindgen", "getrandom/js", "libp2p-swarm/wasm-bindgen"] wasm-ext = ["dep:libp2p-wasm-ext"] wasm-ext-websocket = ["wasm-ext", "libp2p-wasm-ext?/websocket"] -websys = ["dep:libp2p-websys-transport"] -websys-websocket = ["websys", "libp2p-websys-transport?/websocket"] +websys-websocket = ["dep:libp2p-websys-websocket"] webrtc = ["dep:libp2p-webrtc", "libp2p-webrtc?/pem"] websocket = ["dep:libp2p-websocket"] yamux = ["dep:libp2p-yamux"] @@ -120,7 +118,7 @@ libp2p-rendezvous = { version = "0.12.0", path = "../protocols/rendezvous", opti libp2p-request-response = { version = "0.24.0", path = "../protocols/request-response", optional = true } libp2p-swarm = { version = "0.42.0", path = "../swarm" } libp2p-wasm-ext = { version = "0.39.0", path = "../transports/wasm-ext", optional = true } -libp2p-websys-transport = { version = "0.2.0", path = "../transports/websys", optional = true } +libp2p-websys-websocket = { version = "0.2.0", path = "../transports/websys-websocket", optional = true } libp2p-yamux = { version = "0.43.0", path = "../muxers/yamux", optional = true } multiaddr = { version = "0.17.0" } pin-project = "1.0.0" diff --git a/libp2p/src/lib.rs b/libp2p/src/lib.rs index d48e0db2f2b..9fa372a498f 100644 --- a/libp2p/src/lib.rs +++ b/libp2p/src/lib.rs @@ -140,9 +140,9 @@ pub mod wasm_ext { #[doc(inline)] pub use libp2p_wasm_ext::*; } -#[cfg(feature = "websys")] +#[cfg(feature = "websys-websocket")] #[doc(inline)] -pub use libp2p_websys_transport as websys; +pub use libp2p_websys_websocket as websys_websocket; #[cfg(feature = "webrtc")] #[cfg_attr(docsrs, doc(cfg(feature = "webrtc")))] #[cfg(not(target_arch = "wasm32"))] diff --git a/transports/websys/CHANGELOG.md b/transports/websys-websocket/CHANGELOG.md similarity index 100% rename from transports/websys/CHANGELOG.md rename to transports/websys-websocket/CHANGELOG.md diff --git a/transports/websys/Cargo.toml b/transports/websys-websocket/Cargo.toml similarity index 77% rename from transports/websys/Cargo.toml rename to transports/websys-websocket/Cargo.toml index c74df8278d3..1e377cb0d7f 100644 --- a/transports/websys/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -1,8 +1,8 @@ [package] -name = "libp2p-websys-transport" +name = "libp2p-websys-websocket" edition = "2021" rust-version = "1.60.0" -description = "libp2p transports for WASM browser runtime." +description = "libp2p websocket transports for WASM browser runtime." version = "0.2.0" authors = ["Vince Vasta "] license = "MIT" @@ -18,10 +18,15 @@ parking_lot = "0.12.1" send_wrapper = "0.6.0" thiserror = "1.0.38" wasm-bindgen = "0.2.84" -web-sys = { version = "0.3.61", default-features = false } -[features] -websocket = ["web-sys/BinaryType", "web-sys/CloseEvent", "web-sys/MessageEvent", "web-sys/WebSocket"] +[dependencies.web-sys] +version = "0.3.61" +features = [ + "BinaryType", + "CloseEvent", + "MessageEvent", + "WebSocket", +] [dev-dependencies] libp2p-mplex = { path = "../../muxers/mplex" } diff --git a/transports/websys/src/websocket.rs b/transports/websys-websocket/src/lib.rs similarity index 93% rename from transports/websys/src/websocket.rs rename to transports/websys-websocket/src/lib.rs index a6b99d59907..eb5b2a58c58 100644 --- a/transports/websys/src/websocket.rs +++ b/transports/websys-websocket/src/lib.rs @@ -37,26 +37,26 @@ use std::{ task::{Context, Waker}, }; -/** A Websocket transport that can be used in a Wasm client. - -## Example - -To create an authenticated transport instance with Noise protocol and Mplex: - -```no_run -# use libp2p_core::{upgrade::Version, Transport}; -# use libp2p_identity::Keypair; -# use libp2p_mplex::MplexConfig; -# use libp2p_noise::NoiseAuthenticated; -# use libp2p_websys_transport::websocket; -let local_key = Keypair::generate_ed25519(); -let transport = websocket::Transport::default() - .upgrade(Version::V1) - .authenticate(NoiseAuthenticated::xx(&local_key).unwrap()) - .multiplex(MplexConfig::default()) - .boxed(); -``` -*/ +/// A Websocket transport that can be used in a Wasm client. +/// +/// ## Example +/// +/// To create an authenticated transport instance with Noise protocol and Mplex: +/// +/// ```no_run +/// # use libp2p_core::{upgrade::Version, Transport}; +/// # use libp2p_identity::Keypair; +/// # use libp2p_mplex::MplexConfig; +/// # use libp2p_noise::NoiseAuthenticated; +/// # use libp2p_websys_transport::websocket; +/// let local_key = Keypair::generate_ed25519(); +/// let transport = websocket::Transport::default() +/// .upgrade(Version::V1) +/// .authenticate(NoiseAuthenticated::xx(&local_key).unwrap()) +/// .multiplex(MplexConfig::default()) +/// .boxed(); +/// ``` +/// #[derive(Default)] pub struct Transport; diff --git a/transports/websys/src/lib.rs b/transports/websys/src/lib.rs deleted file mode 100644 index b374413ce51..00000000000 --- a/transports/websys/src/lib.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (C) 2023 Vince Vasta -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -//! Libp2p transports built on [Websys](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html). -#![warn(clippy::all, rust_2018_idioms)] -#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] - -#[cfg(feature = "websocket")] -pub mod websocket; From 2e4922a9620b5e82f37e0c7fabf347e7d7a71aad Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 2 Apr 2023 16:48:08 +0200 Subject: [PATCH 12/37] Remove deprecated mplex from doc test --- Cargo.lock | 2 +- transports/websys-websocket/Cargo.toml | 2 +- transports/websys-websocket/src/lib.rs | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 24381827ddc..1f8406efbbe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2975,8 +2975,8 @@ dependencies = [ "js-sys", "libp2p-core", "libp2p-identity", - "libp2p-mplex", "libp2p-noise", + "libp2p-yamux", "parking_lot 0.12.1", "send_wrapper 0.6.0", "thiserror", diff --git a/transports/websys-websocket/Cargo.toml b/transports/websys-websocket/Cargo.toml index 1e377cb0d7f..b055f9f117b 100644 --- a/transports/websys-websocket/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -29,7 +29,7 @@ features = [ ] [dev-dependencies] -libp2p-mplex = { path = "../../muxers/mplex" } +libp2p-yamux = { path = "../../muxers/yamux" } libp2p-identity = { path = "../../identity" } libp2p-noise = { path = "../noise" } diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index eb5b2a58c58..9ee9fd429ef 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -46,14 +46,13 @@ use std::{ /// ```no_run /// # use libp2p_core::{upgrade::Version, Transport}; /// # use libp2p_identity::Keypair; -/// # use libp2p_mplex::MplexConfig; +/// # use libp2p_yamux::YamuxConfig; /// # use libp2p_noise::NoiseAuthenticated; -/// # use libp2p_websys_transport::websocket; /// let local_key = Keypair::generate_ed25519(); -/// let transport = websocket::Transport::default() +/// let transport = libp2p_websys_websocket::Transport::default() /// .upgrade(Version::V1) /// .authenticate(NoiseAuthenticated::xx(&local_key).unwrap()) -/// .multiplex(MplexConfig::default()) +/// .multiplex(YamuxConfig::default()) /// .boxed(); /// ``` /// From 5534114af931fc0812c2b55910ab8fee87d4a487 Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 2 Apr 2023 17:35:12 +0200 Subject: [PATCH 13/37] Return MultiaddrNotSupported for invalid multi addr. --- transports/websys-websocket/src/lib.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 9ee9fd429ef..5ac0f69c8d0 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -74,10 +74,10 @@ impl libp2p_core::Transport for Transport { } fn dial(&mut self, addr: Multiaddr) -> Result> { - let ws_url = if let Some(url) = websocket_url(addr) { + let ws_url = if let Some(url) = websocket_url(&addr) { url } else { - return Err(TransportError::Other(Error::NotSupported)); + return Err(TransportError::MultiaddrNotSupported(addr)); }; Ok(async move { @@ -111,7 +111,7 @@ impl libp2p_core::Transport for Transport { } // Try to convert Multiaddr to a Websocket url. -fn websocket_url(addr: Multiaddr) -> Option { +fn websocket_url(addr: &Multiaddr) -> Option { let mut protocols = addr.iter(); let host_port = match (protocols.next(), protocols.next()) { (Some(Protocol::Ip4(ip)), Some(Protocol::Tcp(port))) => { @@ -135,7 +135,6 @@ fn websocket_url(addr: Multiaddr) -> Option { _ => return None, }; - // TODO: handle PeerId Some(format!("{scheme}://{host_port}{wspath}")) } From d50ea635313b392e72dba36e75c3f8f31a43114c Mon Sep 17 00:00:00 2001 From: Vince Date: Mon, 3 Apr 2023 20:45:54 +0200 Subject: [PATCH 14/37] Use weak pointer in the Websocket callbacks to avoid cycle --- transports/websys-websocket/src/lib.rs | 44 +++++++++++++++----------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 5ac0f69c8d0..ca6c42b723e 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -184,26 +184,30 @@ impl Connection { })); let open_callback = Closure::::new({ - let shared = shared.clone(); + let weak_shared = Arc::downgrade(&shared); move || { - let mut locked = shared.lock(); - locked.opened = true; - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); + if let Some(shared) = weak_shared.upgrade() { + let mut locked = shared.lock(); + locked.opened = true; + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } } } }); socket.set_onopen(Some(open_callback.as_ref().unchecked_ref())); let message_callback = Closure::::new({ - let shared = shared.clone(); + let weak_shared = Arc::downgrade(&shared); move |e: MessageEvent| { if let Ok(abuf) = e.data().dyn_into::() { - let mut locked = shared.lock(); - let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); - locked.data.extend(bytes.into_iter()); - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); + if let Some(shared) = weak_shared.upgrade() { + let mut locked = shared.lock(); + let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); + locked.data.extend(bytes.into_iter()); + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } } } else { panic!("Unexpected data format {:?}", e.data()); @@ -213,23 +217,27 @@ impl Connection { socket.set_onmessage(Some(message_callback.as_ref().unchecked_ref())); let error_callback = Closure::::new({ - let shared = shared.clone(); + let weak_shared = Arc::downgrade(&shared); move |_| { // The error event for error callback doesn't give any information and // generates error on the browser console we just signal it to the // stream. - shared.lock().error = true; + if let Some(shared) = weak_shared.upgrade() { + shared.lock().error = true; + } } }); socket.set_onerror(Some(error_callback.as_ref().unchecked_ref())); let close_callback = Closure::::new({ - let shared = shared.clone(); + let weak_shared = Arc::downgrade(&shared); move |_| { - let mut locked = shared.lock(); - locked.closed = true; - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); + if let Some(shared) = weak_shared.upgrade() { + let mut locked = shared.lock(); + locked.closed = true; + if let Some(waker) = &locked.waker { + waker.wake_by_ref(); + } } } }); From 4603ca61eb3eb489e0f87926cac1b7d04f501f8a Mon Sep 17 00:00:00 2001 From: Vince Date: Sat, 8 Apr 2023 11:33:15 +0200 Subject: [PATCH 15/37] Set version to 0.1.0 for new package --- libp2p/Cargo.toml | 2 +- transports/websys-websocket/CHANGELOG.md | 2 +- transports/websys-websocket/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index e6fc00d9f86..bbcf701797c 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -118,7 +118,7 @@ libp2p-rendezvous = { version = "0.12.0", path = "../protocols/rendezvous", opti libp2p-request-response = { version = "0.24.0", path = "../protocols/request-response", optional = true } libp2p-swarm = { version = "0.42.0", path = "../swarm" } libp2p-wasm-ext = { version = "0.39.0", path = "../transports/wasm-ext", optional = true } -libp2p-websys-websocket = { version = "0.2.0", path = "../transports/websys-websocket", optional = true } +libp2p-websys-websocket = { version = "0.1.0", path = "../transports/websys-websocket", optional = true } libp2p-yamux = { version = "0.43.0", path = "../muxers/yamux", optional = true } multiaddr = { version = "0.17.0" } pin-project = "1.0.0" diff --git a/transports/websys-websocket/CHANGELOG.md b/transports/websys-websocket/CHANGELOG.md index 59ce439f863..cc8907fb086 100644 --- a/transports/websys-websocket/CHANGELOG.md +++ b/transports/websys-websocket/CHANGELOG.md @@ -1,3 +1,3 @@ -# 0.2.0 - unreleased +# 0.1.0 - unreleased - Add Websys Websocket transport. diff --git a/transports/websys-websocket/Cargo.toml b/transports/websys-websocket/Cargo.toml index b055f9f117b..5fc81211726 100644 --- a/transports/websys-websocket/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -3,7 +3,7 @@ name = "libp2p-websys-websocket" edition = "2021" rust-version = "1.60.0" description = "libp2p websocket transports for WASM browser runtime." -version = "0.2.0" +version = "0.1.0" authors = ["Vince Vasta "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p" From f5b79653731f89409b7941c23e4635944132adf2 Mon Sep 17 00:00:00 2001 From: Vince Date: Sat, 8 Apr 2023 11:33:56 +0200 Subject: [PATCH 16/37] Fix Yamux doc comment --- transports/websys-websocket/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index ca6c42b723e..90ea830c7aa 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -41,7 +41,7 @@ use std::{ /// /// ## Example /// -/// To create an authenticated transport instance with Noise protocol and Mplex: +/// To create an authenticated transport instance with Noise protocol and Yamux: /// /// ```no_run /// # use libp2p_core::{upgrade::Version, Transport}; From 487828abb8eac535debc0cea07f6846c888a1efe Mon Sep 17 00:00:00 2001 From: Vince Date: Sat, 8 Apr 2023 11:36:22 +0200 Subject: [PATCH 17/37] Use different wakers for read and write --- Cargo.lock | 2 +- transports/websys-websocket/src/lib.rs | 40 +++++++++++++++----------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1f8406efbbe..cd1fec1d3a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2969,7 +2969,7 @@ dependencies = [ [[package]] name = "libp2p-websys-websocket" -version = "0.2.0" +version = "0.1.0" dependencies = [ "futures", "js-sys", diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 90ea830c7aa..09701c994f9 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -157,11 +157,24 @@ struct Shared { closed: bool, error: bool, data: VecDeque, - waker: Option, + read_waker: Option, + write_waker: Option, socket: SendWrapper, closures: Option>, } +impl Shared { + fn wake(&self) { + if let Some(waker) = &self.read_waker { + waker.wake_by_ref(); + } + + if let Some(waker) = &self.write_waker { + waker.wake_by_ref(); + } + } +} + type Closures = ( Closure, Closure, @@ -178,7 +191,8 @@ impl Connection { closed: false, error: false, data: VecDeque::with_capacity(1 << 16), - waker: None, + read_waker: None, + write_waker: None, socket: SendWrapper::new(socket.clone()), closures: None, })); @@ -189,9 +203,7 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); locked.opened = true; - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); - } + locked.wake(); } } }); @@ -205,9 +217,7 @@ impl Connection { let mut locked = shared.lock(); let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); locked.data.extend(bytes.into_iter()); - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); - } + locked.wake(); } } else { panic!("Unexpected data format {:?}", e.data()); @@ -223,7 +233,9 @@ impl Connection { // generates error on the browser console we just signal it to the // stream. if let Some(shared) = weak_shared.upgrade() { - shared.lock().error = true; + let mut locked = shared.lock(); + locked.error = true; + locked.wake(); } } }); @@ -235,9 +247,7 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); locked.closed = true; - if let Some(waker) = &locked.waker { - waker.wake_by_ref(); - } + locked.wake(); } } }); @@ -264,13 +274,12 @@ impl AsyncRead for Connection { buf: &mut [u8], ) -> Poll> { let mut shared = self.shared.lock(); - shared.waker = Some(cx.waker().clone()); - if shared.error { Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) } else if shared.closed { Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) } else if shared.data.is_empty() { + shared.read_waker = Some(cx.waker().clone()); Poll::Pending } else { let n = shared.data.len().min(buf.len()); @@ -289,13 +298,12 @@ impl AsyncWrite for Connection { buf: &[u8], ) -> Poll> { let mut shared = self.shared.lock(); - shared.waker = Some(cx.waker().clone()); - if shared.error { Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) } else if shared.closed { Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) } else if !shared.opened { + shared.write_waker = Some(cx.waker().clone()); Poll::Pending } else { match shared.socket.send_with_u8_array(buf) { From c688acb9b2172ee0effed29383e66496dbee09bf Mon Sep 17 00:00:00 2001 From: Vince Date: Sat, 8 Apr 2023 11:54:13 +0200 Subject: [PATCH 18/37] Use debug_assert for unexpected data format --- transports/websys-websocket/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 09701c994f9..acd85dfb351 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -220,7 +220,7 @@ impl Connection { locked.wake(); } } else { - panic!("Unexpected data format {:?}", e.data()); + debug_assert!(false, "Unexpected data format {:?}", e.data()); } } }); From 17e87997d73c40d260dba64f1ace8c7e47ab766d Mon Sep 17 00:00:00 2001 From: Vince Date: Sat, 8 Apr 2023 13:49:53 +0200 Subject: [PATCH 19/37] Make websocket constructor error user friendly. --- transports/websys-websocket/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index acd85dfb351..11287131cfe 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -83,7 +83,7 @@ impl libp2p_core::Transport for Transport { Ok(async move { let socket = match WebSocket::new(&ws_url) { Ok(ws) => ws, - Err(err) => return Err(Error::JsError(format!("{err:?}"))), + Err(_) => return Err(Error::JsError(format!("Invalid websocket url: {ws_url}"))), }; Ok(Connection::new(socket)) @@ -148,7 +148,6 @@ pub enum Error { /// A Websocket connection created by the [`Transport`]. pub struct Connection { - /// We need to use Mutex as libp2p requires this to be Send. shared: Arc>, } From 0af23895d748421cc1b22403b20ab0dde8e33e3d Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:03:29 +0100 Subject: [PATCH 20/37] Rewrite style of cargo features --- transports/websys-websocket/Cargo.toml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/transports/websys-websocket/Cargo.toml b/transports/websys-websocket/Cargo.toml index 5fc81211726..5c521049ffc 100644 --- a/transports/websys-websocket/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -18,15 +18,7 @@ parking_lot = "0.12.1" send_wrapper = "0.6.0" thiserror = "1.0.38" wasm-bindgen = "0.2.84" - -[dependencies.web-sys] -version = "0.3.61" -features = [ - "BinaryType", - "CloseEvent", - "MessageEvent", - "WebSocket", -] +web-sys = { version = "0.3.61", features = [ "BinaryType", "CloseEvent", "MessageEvent", "WebSocket" ] } [dev-dependencies] libp2p-yamux = { path = "../../muxers/yamux" } From 4337fc93b79ec23855be8f1c7a8a1edd99d2e8ea Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:03:54 +0100 Subject: [PATCH 21/37] Fix spelling of `web-sys` --- transports/websys-websocket/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 11287131cfe..99b7a2e577b 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -//! Libp2p websocket transports built on [Websys](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html). +//! Libp2p websocket transports built on [web-sys](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html). use futures::{future::Ready, io, prelude::*}; use libp2p_core::{ multiaddr::{Multiaddr, Protocol}, From 883552d0b5b5640587f77f7deb9795c98c5ddd40 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:10:13 +0100 Subject: [PATCH 22/37] Misc clean-up --- transports/websys-websocket/src/lib.rs | 43 ++++++++++++++------------ 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 99b7a2e577b..8d1621066fc 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -37,13 +37,13 @@ use std::{ task::{Context, Waker}, }; -/// A Websocket transport that can be used in a Wasm client. +/// A Websocket transport that can be used in a wasm environment. /// /// ## Example /// /// To create an authenticated transport instance with Noise protocol and Yamux: /// -/// ```no_run +/// ``` /// # use libp2p_core::{upgrade::Version, Transport}; /// # use libp2p_identity::Keypair; /// # use libp2p_yamux::YamuxConfig; @@ -57,7 +57,7 @@ use std::{ /// ``` /// #[derive(Default)] -pub struct Transport; +pub struct Transport {} impl libp2p_core::Transport for Transport { type Output = Connection; @@ -65,8 +65,8 @@ impl libp2p_core::Transport for Transport { type ListenerUpgrade = Ready>; type Dial = Pin> + Send>>; - fn listen_on(&mut self, _addr: Multiaddr) -> Result> { - Err(TransportError::Other(Error::NotSupported)) + fn listen_on(&mut self, addr: Multiaddr) -> Result> { + Err(TransportError::MultiaddrNotSupported(addr)) } fn remove_listener(&mut self, _id: ListenerId) -> bool { @@ -74,16 +74,13 @@ impl libp2p_core::Transport for Transport { } fn dial(&mut self, addr: Multiaddr) -> Result> { - let ws_url = if let Some(url) = websocket_url(&addr) { - url - } else { - return Err(TransportError::MultiaddrNotSupported(addr)); - }; + let url = extract_websocket_url(&addr) + .ok_or_else(|| TransportError::MultiaddrNotSupported(addr))?; Ok(async move { - let socket = match WebSocket::new(&ws_url) { + let socket = match WebSocket::new(&url) { Ok(ws) => ws, - Err(_) => return Err(Error::JsError(format!("Invalid websocket url: {ws_url}"))), + Err(_) => return Err(Error::invalid_websocket_url(&url)), }; Ok(Connection::new(socket)) @@ -93,9 +90,9 @@ impl libp2p_core::Transport for Transport { fn dial_as_listener( &mut self, - _addr: Multiaddr, + addr: Multiaddr, ) -> Result> { - Err(TransportError::Other(Error::NotSupported)) + Err(TransportError::MultiaddrNotSupported(addr)) } fn poll( @@ -111,7 +108,7 @@ impl libp2p_core::Transport for Transport { } // Try to convert Multiaddr to a Websocket url. -fn websocket_url(addr: &Multiaddr) -> Option { +fn extract_websocket_url(addr: &Multiaddr) -> Option { let mut protocols = addr.iter(); let host_port = match (protocols.next(), protocols.next()) { (Some(Protocol::Ip4(ip)), Some(Protocol::Tcp(port))) => { @@ -139,11 +136,17 @@ fn websocket_url(addr: &Multiaddr) -> Option { } #[derive(thiserror::Error, Debug)] -pub enum Error { - #[error("js function error {0}")] - JsError(String), - #[error("operation not supported")] - NotSupported, +#[error("{msg}")] +pub struct Error { + msg: String, +} + +impl Error { + pub(crate) fn invalid_websocket_url(url: &str) -> Self { + Self { + msg: format!("Invalid websocket url: {url}"), + } + } } /// A Websocket connection created by the [`Transport`]. From b0b6de806fb39c68dac860faf0ebf9340ed4d7e0 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:14:31 +0100 Subject: [PATCH 23/37] use early return --- transports/websys-websocket/src/lib.rs | 62 ++++++++++++++++---------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 8d1621066fc..13ecba52fab 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -276,20 +276,26 @@ impl AsyncRead for Connection { buf: &mut [u8], ) -> Poll> { let mut shared = self.shared.lock(); + if shared.error { - Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) - } else if shared.closed { - Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) - } else if shared.data.is_empty() { + return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); + } + + if shared.closed { + return Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())); + } + + if shared.data.is_empty() { shared.read_waker = Some(cx.waker().clone()); - Poll::Pending - } else { - let n = shared.data.len().min(buf.len()); - for k in buf.iter_mut().take(n) { - *k = shared.data.pop_front().unwrap(); - } - Poll::Ready(Ok(n)) + return Poll::Pending; + } + + let n = shared.data.len().min(buf.len()); + for k in buf.iter_mut().take(n) { + *k = shared.data.pop_front().unwrap(); } + + Poll::Ready(Ok(n)) } } @@ -301,21 +307,29 @@ impl AsyncWrite for Connection { ) -> Poll> { let mut shared = self.shared.lock(); if shared.error { - Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))) - } else if shared.closed { - Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())) - } else if !shared.opened { + return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); + } + + if shared.closed { + return Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())); + } + + if !shared.opened { shared.write_waker = Some(cx.waker().clone()); - Poll::Pending - } else { - match shared.socket.send_with_u8_array(buf) { - Ok(()) => Poll::Ready(Ok(buf.len())), - Err(err) => Poll::Ready(Err(io::Error::new( - io::ErrorKind::Other, - format!("Write error: {err:?}"), - ))), - } + return Poll::Pending; } + + shared.socket.send_with_u8_array(buf).map_err(|e| { + io::Error::new( + io::ErrorKind::Other, + format!( + "Failed to write data: {}", + e.as_string().unwrap_or_default() + ), + ) + })?; + + Poll::Ready(Ok(buf.len())) } fn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { From 27ef99d4f10720dd764b424ec8ce7cd57b16b318 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:34:51 +0100 Subject: [PATCH 24/37] Refactor booleans to state --- transports/websys-websocket/src/lib.rs | 100 +++++++++++++++---------- 1 file changed, 61 insertions(+), 39 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 13ecba52fab..bf9c614ed4b 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -155,16 +155,24 @@ pub struct Connection { } struct Shared { - opened: bool, - closed: bool, - error: bool, - data: VecDeque, + state: State, read_waker: Option, write_waker: Option, socket: SendWrapper, closures: Option>, } +enum State { + Connecting, + Open { + buffer: VecDeque, + }, + #[allow(dead_code)] + Closing, + Closed, + Error, +} + impl Shared { fn wake(&self) { if let Some(waker) = &self.read_waker { @@ -189,10 +197,7 @@ impl Connection { socket.set_binary_type(web_sys::BinaryType::Arraybuffer); let shared = Arc::new(Mutex::new(Shared { - opened: false, - closed: false, - error: false, - data: VecDeque::with_capacity(1 << 16), + state: State::Connecting, read_waker: None, write_waker: None, socket: SendWrapper::new(socket.clone()), @@ -204,7 +209,9 @@ impl Connection { move || { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); - locked.opened = true; + locked.state = State::Open { + buffer: VecDeque::default(), + }; locked.wake(); } } @@ -218,8 +225,11 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); - locked.data.extend(bytes.into_iter()); - locked.wake(); + + if let State::Open { buffer } = &mut locked.state { + buffer.extend(bytes.into_iter()); + locked.wake(); + } } } else { debug_assert!(false, "Unexpected data format {:?}", e.data()); @@ -236,7 +246,7 @@ impl Connection { // stream. if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); - locked.error = true; + locked.state = State::Error; locked.wake(); } } @@ -248,7 +258,7 @@ impl Connection { move |_| { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); - locked.closed = true; + locked.state = State::Closed; locked.wake(); } } @@ -277,22 +287,27 @@ impl AsyncRead for Connection { ) -> Poll> { let mut shared = self.shared.lock(); - if shared.error { - return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); - } - - if shared.closed { - return Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())); - } - - if shared.data.is_empty() { - shared.read_waker = Some(cx.waker().clone()); - return Poll::Pending; - } + let buffer = match &mut shared.state { + State::Connecting => { + shared.read_waker = Some(cx.waker().clone()); + return Poll::Pending; + } + State::Open { buffer } if buffer.is_empty() => { + shared.read_waker = Some(cx.waker().clone()); + return Poll::Pending; + } + State::Open { buffer } => buffer, + State::Closed | State::Closing => { + return Poll::Ready(Ok(0)); + } + State::Error => { + return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); + } + }; - let n = shared.data.len().min(buf.len()); + let n = buffer.len().min(buf.len()); for k in buf.iter_mut().take(n) { - *k = shared.data.pop_front().unwrap(); + *k = buffer.pop_front().unwrap(); } Poll::Ready(Ok(n)) @@ -306,17 +321,19 @@ impl AsyncWrite for Connection { buf: &[u8], ) -> Poll> { let mut shared = self.shared.lock(); - if shared.error { - return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); - } - - if shared.closed { - return Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())); - } - if !shared.opened { - shared.write_waker = Some(cx.waker().clone()); - return Poll::Pending; + match &shared.state { + State::Connecting => { + shared.write_waker = Some(cx.waker().clone()); + return Poll::Pending; + } + State::Closed | State::Closing => { + return Poll::Ready(Err(io::ErrorKind::BrokenPipe.into())); + } + State::Error => { + return Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))); + } + State::Open { .. } => {} } shared.socket.send_with_u8_array(buf).map_err(|e| { @@ -343,9 +360,14 @@ impl AsyncWrite for Connection { impl Drop for Connection { fn drop(&mut self) { + const GO_AWAY_STATUS_CODE: u16 = 1001; // See https://www.rfc-editor.org/rfc/rfc6455.html#section-7.4.1. + let shared = self.shared.lock(); - if shared.opened { - let _ = shared.socket.close(); + + if let State::Connecting | State::Open { .. } = shared.state { + let _ = shared + .socket + .close_with_code_and_reason(GO_AWAY_STATUS_CODE, "connection dropped"); } } } From 0fb9c504271d2487c408683d5bce4ca252649731 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:36:07 +0100 Subject: [PATCH 25/37] Avoid unnecessary wake-ups --- transports/websys-websocket/src/lib.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index bf9c614ed4b..c97fe11e15c 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -174,12 +174,19 @@ enum State { } impl Shared { - fn wake(&self) { - if let Some(waker) = &self.read_waker { + fn wake_read_write(&self) { + self.wake_read(); + self.wake_write() + } + + fn wake_write(&self) { + if let Some(waker) = &self.write_waker { waker.wake_by_ref(); } + } - if let Some(waker) = &self.write_waker { + fn wake_read(&self) { + if let Some(waker) = &self.read_waker { waker.wake_by_ref(); } } @@ -212,7 +219,7 @@ impl Connection { locked.state = State::Open { buffer: VecDeque::default(), }; - locked.wake(); + locked.wake_read_write(); } } }); @@ -228,7 +235,7 @@ impl Connection { if let State::Open { buffer } = &mut locked.state { buffer.extend(bytes.into_iter()); - locked.wake(); + locked.wake_read(); } } } else { @@ -247,7 +254,7 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); locked.state = State::Error; - locked.wake(); + locked.wake_read_write(); } } }); @@ -259,7 +266,7 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); locked.state = State::Closed; - locked.wake(); + locked.wake_write(); } } }); From c3f2abf2d5e1f8e6a40148ab46ae2dc0f6532cd3 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:39:02 +0100 Subject: [PATCH 26/37] Properly implement `poll_close` --- transports/websys-websocket/src/lib.rs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index c97fe11e15c..07d38cf8e20 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -164,10 +164,7 @@ struct Shared { enum State { Connecting, - Open { - buffer: VecDeque, - }, - #[allow(dead_code)] + Open { buffer: VecDeque }, Closing, Closed, Error, @@ -360,8 +357,24 @@ impl AsyncWrite for Connection { Poll::Ready(Ok(())) } - fn poll_close(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { - Poll::Pending + fn poll_close(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + let mut shared = self.shared.lock(); + + match &shared.state { + State::Open { .. } | State::Connecting => { + let _ = shared.socket.close(); + shared.state = State::Closing; + + shared.write_waker = Some(cx.waker().clone()); + Poll::Pending + } + State::Closing => { + shared.write_waker = Some(cx.waker().clone()); + Poll::Pending + } + State::Closed => Poll::Ready(Ok(())), + State::Error => Poll::Ready(Err(io::Error::new(io::ErrorKind::Other, "Socket error"))), + } } } From 37cb0cc01dfed32978fabd40b21dc518d7acedc9 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:41:38 +0100 Subject: [PATCH 27/37] Reduce indentation --- transports/websys-websocket/src/lib.rs | 29 ++++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 07d38cf8e20..52c2dbd71e1 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -225,18 +225,25 @@ impl Connection { let message_callback = Closure::::new({ let weak_shared = Arc::downgrade(&shared); move |e: MessageEvent| { - if let Ok(abuf) = e.data().dyn_into::() { - if let Some(shared) = weak_shared.upgrade() { - let mut locked = shared.lock(); - let bytes = js_sys::Uint8Array::new(&abuf).to_vec(); - - if let State::Open { buffer } = &mut locked.state { - buffer.extend(bytes.into_iter()); - locked.wake_read(); - } + let buf = match e.data().dyn_into::() { + Ok(buf) => buf, + _ => { + debug_assert!(false, "Unexpected data format {:?}", e.data()); + return; } - } else { - debug_assert!(false, "Unexpected data format {:?}", e.data()); + }; + + let shared = match weak_shared.upgrade() { + Some(shared) => shared, + None => return, + }; + + let mut locked = shared.lock(); + let bytes = js_sys::Uint8Array::new(&buf).to_vec(); + + if let State::Open { buffer } = &mut locked.state { + buffer.extend(bytes.into_iter()); + locked.wake_read(); } } }); From a30256ee4632fcfd8cbe57805e8d0e754d457fc3 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 11:45:53 +0100 Subject: [PATCH 28/37] Use `Vec` instead of `VecDeque` --- transports/websys-websocket/src/lib.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 52c2dbd71e1..6eaf0b95e2c 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -30,7 +30,6 @@ use wasm_bindgen::{prelude::*, JsCast}; use web_sys::{MessageEvent, WebSocket}; use std::{ - collections::VecDeque, pin::Pin, sync::Arc, task::Poll, @@ -164,7 +163,7 @@ struct Shared { enum State { Connecting, - Open { buffer: VecDeque }, + Open { buffer: Vec }, Closing, Closed, Error, @@ -214,7 +213,7 @@ impl Connection { if let Some(shared) = weak_shared.upgrade() { let mut locked = shared.lock(); locked.state = State::Open { - buffer: VecDeque::default(), + buffer: Vec::default(), }; locked.wake_read_write(); } @@ -317,9 +316,11 @@ impl AsyncRead for Connection { }; let n = buffer.len().min(buf.len()); - for k in buf.iter_mut().take(n) { - *k = buffer.pop_front().unwrap(); - } + + let remaining_buffer = buffer.split_off(n); + buf.copy_from_slice(buffer); + buffer.clear(); + *buffer = remaining_buffer; Poll::Ready(Ok(n)) } From 4062264ac0d4cbf38c456cf757d39dd9440e8c51 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 12:05:12 +0100 Subject: [PATCH 29/37] Remove unused dependencies --- Cargo.lock | 3 --- transports/websys-websocket/Cargo.toml | 5 ----- 2 files changed, 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf3327f8622..cdd1302f055 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2986,9 +2986,6 @@ dependencies = [ "futures", "js-sys", "libp2p-core", - "libp2p-identity", - "libp2p-noise", - "libp2p-yamux", "parking_lot 0.12.1", "send_wrapper 0.6.0", "thiserror", diff --git a/transports/websys-websocket/Cargo.toml b/transports/websys-websocket/Cargo.toml index 5c521049ffc..e22ed86304b 100644 --- a/transports/websys-websocket/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -20,11 +20,6 @@ thiserror = "1.0.38" wasm-bindgen = "0.2.84" web-sys = { version = "0.3.61", features = [ "BinaryType", "CloseEvent", "MessageEvent", "WebSocket" ] } -[dev-dependencies] -libp2p-yamux = { path = "../../muxers/yamux" } -libp2p-identity = { path = "../../identity" } -libp2p-noise = { path = "../noise" } - # Passing arguments to the docsrs builder in order to properly document cfg's. # More information: https://docs.rs/about/builds#cross-compiling [package.metadata.docs.rs] From aad22e7a7f6284bc6f5f99d2170d57ba78109bcb Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 12:12:34 +0100 Subject: [PATCH 30/37] Add changelog entry --- libp2p/CHANGELOG.md | 8 ++++++++ libp2p/src/lib.rs | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libp2p/CHANGELOG.md b/libp2p/CHANGELOG.md index f5bbb46d473..6a014d26bd3 100644 --- a/libp2p/CHANGELOG.md +++ b/libp2p/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.53.3 - unreleased + +- Introduce `libp2p::websys_websocket` module behind `websys-websocket` feature flag. + This supersedes the existing `libp2p::wasm_ext` module which is now deprecated. + See [PR 3679]. + +[PR 3679]: https://github.com/libp2p/rust-libp2p/pull/3679 + ## 0.52.2 - Introduce `libp2p::connection_limits` module. diff --git a/libp2p/src/lib.rs b/libp2p/src/lib.rs index 2a8f0cbcf7d..cb8319befbf 100644 --- a/libp2p/src/lib.rs +++ b/libp2p/src/lib.rs @@ -138,8 +138,7 @@ pub use libp2p_tls as tls; pub use libp2p_uds as uds; #[cfg(feature = "wasm-ext")] #[deprecated( - since = "0.39.0", - note = "`wasm-ext` is deprecated and will be removed in favor of `libp2p-websys-transport`." + note = "`wasm-ext` is deprecated and will be removed in favor of `libp2p-websys-websocket`." )] pub mod wasm_ext { #[doc(inline)] From c28b83ce0c71284267615665f7fb47676cfd1d3d Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 12:12:50 +0100 Subject: [PATCH 31/37] Bump version --- Cargo.lock | 2 +- libp2p/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cdd1302f055..88d443e1367 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2168,7 +2168,7 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libp2p" -version = "0.51.2" +version = "0.51.3" dependencies = [ "async-std", "async-trait", diff --git a/libp2p/Cargo.toml b/libp2p/Cargo.toml index bbcf701797c..49fe60a9c5f 100644 --- a/libp2p/Cargo.toml +++ b/libp2p/Cargo.toml @@ -3,7 +3,7 @@ name = "libp2p" edition = "2021" rust-version = "1.65.0" description = "Peer-to-peer networking library" -version = "0.51.2" +version = "0.51.3" authors = ["Parity Technologies "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p" From ae393ebf64d390ecae9f7b3b4d19612a1fb45f1d Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 12:13:33 +0100 Subject: [PATCH 32/37] Remove unnecessary `pub(crate)` --- transports/websys-websocket/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 6eaf0b95e2c..532157725f5 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -141,7 +141,7 @@ pub struct Error { } impl Error { - pub(crate) fn invalid_websocket_url(url: &str) -> Self { + fn invalid_websocket_url(url: &str) -> Self { Self { msg: format!("Invalid websocket url: {url}"), } From f24468f6d8e3cb0026687d46f84a079f1ae979b5 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 10 Apr 2023 12:15:27 +0100 Subject: [PATCH 33/37] Add new changelog entry --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cf9f7c9559..cde9b2e6ba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,10 +31,11 @@ - [`libp2p-pnet` CHANGELOG](transports/pnet/CHANGELOG.md) - [`libp2p-quic` CHANGELOG](transports/quic/CHANGELOG.md) - [`libp2p-tcp` CHANGELOG](transports/tcp/CHANGELOG.md) +- [`libp2p-tls` CHANGELOG](transports/tls/CHANGELOG.md) - [`libp2p-uds` CHANGELOG](transports/uds/CHANGELOG.md) - [`libp2p-wasm-ext` CHANGELOG](transports/wasm-ext/CHANGELOG.md) - [`libp2p-websocket` CHANGELOG](transports/websocket/CHANGELOG.md) -- [`libp2p-tls` CHANGELOG](transports/tls/CHANGELOG.md) +- [`libp2p-websys-websocket` CHANGELOG](transports/websys-websocket/CHANGELOG.md) ## Multiplexers From 0f267cf4f8af254fa7013b4553e2580dd48a1276 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 28 Apr 2023 11:40:48 +0200 Subject: [PATCH 34/37] Fixup changelog --- libp2p/CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libp2p/CHANGELOG.md b/libp2p/CHANGELOG.md index 1e974e35029..99e55f78938 100644 --- a/libp2p/CHANGELOG.md +++ b/libp2p/CHANGELOG.md @@ -1,9 +1,8 @@ ## 0.51.3 - Deprecate the `mplex` feature. -The recommended baseline stream multiplexer is `yamux`. -See [PR 3689]. - + The recommended baseline stream multiplexer is `yamux`. + See [PR 3689]. - Introduce `libp2p::websys_websocket` module behind `websys-websocket` feature flag. This supersedes the existing `libp2p::wasm_ext` module which is now deprecated. From 49c5d171bf68647ebc0d6379c84ccc19c4b6e2db Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 28 Apr 2023 11:41:27 +0200 Subject: [PATCH 35/37] Prevent direct construction of `Transport` --- transports/websys-websocket/src/lib.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 532157725f5..6331912ff9b 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -56,7 +56,9 @@ use std::{ /// ``` /// #[derive(Default)] -pub struct Transport {} +pub struct Transport { + _private: () +} impl libp2p_core::Transport for Transport { type Output = Connection; From baace18c5a06ba395798752518ea35965281f9ee Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 28 Apr 2023 11:53:59 +0200 Subject: [PATCH 36/37] Fix formatting --- transports/websys-websocket/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transports/websys-websocket/src/lib.rs b/transports/websys-websocket/src/lib.rs index 6331912ff9b..dbe45dcc52a 100644 --- a/transports/websys-websocket/src/lib.rs +++ b/transports/websys-websocket/src/lib.rs @@ -57,7 +57,7 @@ use std::{ /// #[derive(Default)] pub struct Transport { - _private: () + _private: (), } impl libp2p_core::Transport for Transport { From 989b58f1a9f73fd44a59f0f3a8193fc86d8f446f Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 28 Apr 2023 11:55:45 +0200 Subject: [PATCH 37/37] Fix doc tests --- Cargo.lock | 3 +++ transports/websys-websocket/Cargo.toml | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 0c03f1f8e42..977d997f20e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3084,6 +3084,9 @@ dependencies = [ "futures", "js-sys", "libp2p-core", + "libp2p-identity", + "libp2p-noise", + "libp2p-yamux", "parking_lot 0.12.1", "send_wrapper 0.6.0", "thiserror", diff --git a/transports/websys-websocket/Cargo.toml b/transports/websys-websocket/Cargo.toml index e22ed86304b..d85ca341aae 100644 --- a/transports/websys-websocket/Cargo.toml +++ b/transports/websys-websocket/Cargo.toml @@ -18,7 +18,12 @@ parking_lot = "0.12.1" send_wrapper = "0.6.0" thiserror = "1.0.38" wasm-bindgen = "0.2.84" -web-sys = { version = "0.3.61", features = [ "BinaryType", "CloseEvent", "MessageEvent", "WebSocket" ] } +web-sys = { version = "0.3.61", features = ["BinaryType", "CloseEvent", "MessageEvent", "WebSocket"] } + +[dev-dependencies] +libp2p-identity = { path = "../../identity" } +libp2p-noise = { path = "../noise" } +libp2p-yamux = { path = "../../muxers/yamux" } # Passing arguments to the docsrs builder in order to properly document cfg's. # More information: https://docs.rs/about/builds#cross-compiling