Skip to content

Commit 06e91df

Browse files
build(deps): update axum to 0.8 and tungstenite and tokio-tungstenite to 0.26 (#1305)
1 parent 0bd4531 commit 06e91df

File tree

22 files changed

+104
-204
lines changed

22 files changed

+104
-204
lines changed

Cargo.lock

+20-122
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/test-utils/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ workspace = true
1111
[dependencies]
1212
transport = { path = "../transport" }
1313
tokio = { version = "1.44", features = ["io-util"] }
14-
tokio-tungstenite = "0.24"
14+
tokio-tungstenite = "0.26"
1515
futures-util = "0.3"
1616
proptest = "1.5"
1717
anyhow = "1.0"

crates/test-utils/src/lib.rs

+13-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use std::collections::HashSet;
66
use tokio::io::{AsyncRead, AsyncWrite};
77
use tokio::net::{TcpListener, TcpStream};
88
use tokio_tungstenite::tungstenite;
9+
use tokio_tungstenite::tungstenite::Bytes;
910
use transport::ErasedReadWrite;
1011

1112
/// For sane Debug display
@@ -193,7 +194,7 @@ where
193194
let compat = stream.filter_map(|item| {
194195
let mapped = item
195196
.map(|msg| match msg {
196-
tungstenite::Message::Text(s) => Some(transport::WsReadMsg::Payload(s.into_bytes())),
197+
tungstenite::Message::Text(s) => Some(transport::WsReadMsg::Payload(Bytes::from(s))),
197198
tungstenite::Message::Binary(data) => Some(transport::WsReadMsg::Payload(data)),
198199
tungstenite::Message::Ping(_) | tungstenite::Message::Pong(_) => None,
199200
tungstenite::Message::Close(_) => Some(transport::WsReadMsg::Close),
@@ -213,8 +214,11 @@ where
213214
{
214215
use futures_util::SinkExt as _;
215216

216-
let compat =
217-
sink.with(|item| futures_util::future::ready(Ok::<_, tungstenite::Error>(tungstenite::Message::Binary(item))));
217+
let compat = sink.with(|item| {
218+
futures_util::future::ready(Ok::<_, tungstenite::Error>(tungstenite::Message::Binary(Bytes::from(
219+
item,
220+
))))
221+
});
218222

219223
transport::WsStream::new(compat)
220224
}
@@ -233,7 +237,7 @@ where
233237
.filter_map(|item| {
234238
let mapped = item
235239
.map(|msg| match msg {
236-
tungstenite::Message::Text(s) => Some(transport::WsReadMsg::Payload(s.into_bytes())),
240+
tungstenite::Message::Text(s) => Some(transport::WsReadMsg::Payload(Bytes::from(s))),
237241
tungstenite::Message::Binary(data) => Some(transport::WsReadMsg::Payload(data)),
238242
tungstenite::Message::Ping(_) | tungstenite::Message::Pong(_) => None,
239243
tungstenite::Message::Close(_) => Some(transport::WsReadMsg::Close),
@@ -243,7 +247,11 @@ where
243247

244248
core::future::ready(mapped)
245249
})
246-
.with(|item| futures_util::future::ready(Ok::<_, tungstenite::Error>(tungstenite::Message::Binary(item))));
250+
.with(|item| {
251+
futures_util::future::ready(Ok::<_, tungstenite::Error>(tungstenite::Message::Binary(Bytes::from(
252+
item,
253+
))))
254+
});
247255

248256
transport::WsStream::new(compat)
249257
}

crates/transport/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ futures-util = { version = "0.3", features = ["sink"] }
1616
pin-project-lite = "0.2"
1717
parking_lot = "0.12"
1818
tracing = "0.1"
19+
bytes = { version = "1.10", default-features = false }
1920

2021
[dev-dependencies]
2122
futures-util = "0.3"

crates/transport/src/ws.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
use std::fmt::Display;
21
use std::io;
32
use std::pin::Pin;
43
use std::task::{Context, Poll};
54

5+
use bytes::Bytes;
66
use futures_core::{ready, Stream};
77
use futures_sink::Sink;
88
use pin_project_lite::pin_project;
99
use tokio::io::{AsyncRead, AsyncWrite};
1010

1111
pub enum WsReadMsg {
12-
Payload(Vec<u8>),
12+
Payload(Bytes),
1313
Close,
1414
}
1515

@@ -18,7 +18,7 @@ pin_project! {
1818
pub struct WsStream<S> {
1919
#[pin]
2020
pub inner: S,
21-
read_buf: Option<Vec<u8>>,
21+
read_buf: Option<Bytes>,
2222
}
2323
}
2424

@@ -64,11 +64,10 @@ where
6464

6565
// TODO: can we get better performance with `unfilled_mut` and a bit of unsafe code?
6666
let dest = buf.initialize_unfilled_to(bytes_to_copy);
67-
dest.copy_from_slice(&data[..bytes_to_copy]);
67+
dest.copy_from_slice(&data.split_to(bytes_to_copy));
6868
buf.advance(bytes_to_copy);
6969

70-
if data.len() > bytes_to_copy {
71-
data.drain(..bytes_to_copy);
70+
if !data.is_empty() {
7271
*this.read_buf = Some(data);
7372
}
7473

crates/video-streamer/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ tokio = { version = "1.44", features = [
3333
"macros",
3434
"fs"
3535
] }
36-
axum = { version = "0.7", features = ["ws"] }
36+
axum = { version = "0.8", features = ["ws"] }
3737
futures = "0.3"
38-
tokio-tungstenite = "0.24"
38+
tokio-tungstenite = "0.26"
3939
transport = { path = "../transport" }
4040

4141
[lints]

0 commit comments

Comments
 (0)