Merge pull request #217 from greatest-ape/work-2025-01-12

Update dependencies
This commit is contained in:
Joakim Frostegård 2025-01-12 22:45:04 +01:00 committed by GitHub
commit 0157ce5c86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 598 additions and 749 deletions

1271
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -2,6 +2,8 @@
## High priority ## High priority
* update zerocopy version (will likely require minor rewrite)
* udp (uring) * udp (uring)
* run tests under valgrind * run tests under valgrind
* hangs for integration tests, possibly related to https://bugs.kde.org/show_bug.cgi?id=463859 * hangs for integration tests, possibly related to https://bugs.kde.org/show_bug.cgi?id=463859

View file

@ -27,7 +27,7 @@ clap = { version = "4", features = ["derive"] }
humanize-bytes = "1" humanize-bytes = "1"
indexmap = "2" indexmap = "2"
indoc = "2" indoc = "2"
itertools = "0.12" itertools = "0.14"
num-format = "0.4" num-format = "0.4"
nonblock = "0.2" nonblock = "0.2"
once_cell = "1" once_cell = "1"

View file

@ -24,9 +24,9 @@ aquatic_toml_config.workspace = true
ahash = "0.8" ahash = "0.8"
anyhow = "1" anyhow = "1"
arc-swap = "1" arc-swap = "1"
duplicate = "1" duplicate = "2"
git-testament = "0.2" git-testament = "0.2"
hashbrown = "0.14" hashbrown = "0.15"
hex = "0.4" hex = "0.4"
indexmap = "2" indexmap = "2"
libc = "0.2" libc = "0.2"
@ -42,9 +42,9 @@ rustls = { version = "0.23", optional = true }
rustls-pemfile = { version = "2", optional = true } rustls-pemfile = { version = "2", optional = true }
# prometheus feature # prometheus feature
metrics = { version = "0.22", optional = true } metrics = { version = "0.24", optional = true }
metrics-util = { version = "0.16", optional = true } metrics-util = { version = "0.19", optional = true }
metrics-exporter-prometheus = { version = "0.14", optional = true, default-features = false, features = ["http-listener"] } metrics-exporter-prometheus = { version = "0.16", optional = true, default-features = false, features = ["http-listener"] }
tokio = { version = "1", optional = true, features = ["rt", "net", "time"] } tokio = { version = "1", optional = true, features = ["rt", "net", "time"] }
# cpu pinning feature # cpu pinning feature

View file

@ -150,7 +150,9 @@ pub fn spawn_prometheus_endpoint(
} }
}); });
exporter.await.context("run prometheus exporter") exporter
.await
.map_err(|err| anyhow::anyhow!("run prometheus exporter: :{:#?}", err))
}) })
}) })
.context("spawn prometheus endpoint")?; .context("spawn prometheus endpoint")?;

View file

@ -53,11 +53,11 @@ serde = { version = "1", features = ["derive"] }
signal-hook = { version = "0.3" } signal-hook = { version = "0.3" }
slotmap = "1" slotmap = "1"
socket2 = { version = "0.5", features = ["all"] } socket2 = { version = "0.5", features = ["all"] }
thiserror = "1" thiserror = "2"
# metrics feature # metrics feature
metrics = { version = "0.22", optional = true } metrics = { version = "0.24", optional = true }
metrics-util = { version = "0.16", optional = true } metrics-util = { version = "0.19", optional = true }
# mimalloc feature # mimalloc feature
mimalloc = { version = "0.1", default-features = false, optional = true } mimalloc = { version = "0.1", default-features = false, optional = true }

View file

@ -85,7 +85,7 @@ pub async fn run_socket_worker(
request_senders, request_senders,
opt_tls_config, opt_tls_config,
connection_handles, connection_handles,
valid_until, valid_until
) )
async move { async move {
#[cfg(feature = "metrics")] #[cfg(feature = "metrics")]

View file

@ -23,7 +23,7 @@ anyhow = "1"
futures = "0.3" futures = "0.3"
futures-lite = "1" futures-lite = "1"
futures-rustls = "0.26" futures-rustls = "0.26"
hashbrown = "0.14" hashbrown = "0.15"
glommio = "0.9" glommio = "0.9"
log = "0.4" log = "0.4"
mimalloc = { version = "0.1", default-features = false } mimalloc = { version = "0.1", default-features = false }

View file

@ -17,7 +17,7 @@ name = "aquatic_peer_id"
default = ["quickcheck"] default = ["quickcheck"]
[dependencies] [dependencies]
compact_str = "0.7" compact_str = "0.8"
hex = "0.4" hex = "0.4"
regex = "1" regex = "1"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }

View file

@ -37,17 +37,17 @@ anyhow = "1"
arrayvec = "0.7" arrayvec = "0.7"
blake3 = "1" blake3 = "1"
cfg-if = "1" cfg-if = "1"
compact_str = "0.7" compact_str = "0.8"
constant_time_eq = "0.3" constant_time_eq = "0.3"
crossbeam-channel = "0.5" crossbeam-channel = "0.5"
crossbeam-utils = "0.8" crossbeam-utils = "0.8"
getrandom = "0.2" getrandom = "0.2"
hashbrown = { version = "0.14", default-features = false } hashbrown = { version = "0.15", default-features = false }
hdrhistogram = "7" hdrhistogram = "7"
hex = "0.4" hex = "0.4"
libc = "0.2" libc = "0.2"
log = "0.4" log = "0.4"
mio = { version = "0.8", features = ["net", "os-poll"] } mio = { version = "1", features = ["net", "os-poll"] }
num-format = "0.4" num-format = "0.4"
parking_lot = "0.12" parking_lot = "0.12"
rand = { version = "0.8", features = ["small_rng"] } rand = { version = "0.8", features = ["small_rng"] }
@ -59,10 +59,10 @@ time = { version = "0.3", features = ["formatting"] }
tinytemplate = "1" tinytemplate = "1"
# prometheus feature # prometheus feature
metrics = { version = "0.22", optional = true } metrics = { version = "0.24", optional = true }
# io-uring feature # io-uring feature
io-uring = { version = "0.6", optional = true } io-uring = { version = "0.7", optional = true }
# mimalloc feature # mimalloc feature
mimalloc = { version = "0.1", default-features = false, optional = true } mimalloc = { version = "0.1", default-features = false, optional = true }

View file

@ -64,9 +64,9 @@ pub fn run(config: Config) -> ::anyhow::Result<()> {
let state = state.clone(); let state = state.clone();
let statistics_sender = statistics_sender.clone(); let statistics_sender = statistics_sender.clone();
Builder::new().name("load-test".into()).spawn(move || { Builder::new()
Worker::run(config, state, statistics_sender, peers, addr) .name("load-test".into())
})?; .spawn(move || Worker::run(config, state, statistics_sender, peers, addr))?;
} }
monitor_statistics(state, &config, statistics_receiver); monitor_statistics(state, &config, statistics_receiver);

View file

@ -33,14 +33,14 @@ aquatic_toml_config.workspace = true
aquatic_ws_protocol.workspace = true aquatic_ws_protocol.workspace = true
anyhow = "1" anyhow = "1"
async-tungstenite = "0.25" async-tungstenite = "0.28"
arc-swap = "1" arc-swap = "1"
cfg-if = "1" cfg-if = "1"
futures = "0.3" futures = "0.3"
futures-lite = "1" futures-lite = "1"
futures-rustls = "0.26" futures-rustls = "0.26"
glommio = "0.9" glommio = "0.9"
hashbrown = { version = "0.14", features = ["serde"] } hashbrown = { version = "0.15", features = ["serde"] }
httparse = "1" httparse = "1"
indexmap = "2" indexmap = "2"
log = "0.4" log = "0.4"
@ -53,11 +53,11 @@ signal-hook = { version = "0.3" }
slab = "0.4" slab = "0.4"
slotmap = "1" slotmap = "1"
socket2 = { version = "0.5", features = ["all"] } socket2 = { version = "0.5", features = ["all"] }
tungstenite = "0.21" tungstenite = "0.24"
# metrics feature # metrics feature
metrics = { version = "0.22", optional = true } metrics = { version = "0.24", optional = true }
metrics-util = { version = "0.16", optional = true } metrics-util = { version = "0.19", optional = true }
# mimalloc feature # mimalloc feature
mimalloc = { version = "0.1", default-features = false, optional = true } mimalloc = { version = "0.1", default-features = false, optional = true }

View file

@ -20,7 +20,7 @@ aquatic_toml_config.workspace = true
aquatic_ws_protocol.workspace = true aquatic_ws_protocol.workspace = true
anyhow = "1" anyhow = "1"
async-tungstenite = "0.25" async-tungstenite = "0.28"
futures = "0.3" futures = "0.3"
futures-rustls = "0.26" futures-rustls = "0.26"
glommio = "0.9" glommio = "0.9"
@ -31,7 +31,7 @@ rand_distr = "0.4"
rustls = { version = "0.23" } rustls = { version = "0.23" }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"
tungstenite = "0.21" tungstenite = "0.24"
[dev-dependencies] [dev-dependencies]
quickcheck = "1" quickcheck = "1"

View file

@ -26,11 +26,11 @@ harness = false
[dependencies] [dependencies]
anyhow = "1" anyhow = "1"
hashbrown = { version = "0.14", features = ["serde"] } hashbrown = { version = "0.15", features = ["serde"] }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"
simd-json = "0.13" simd-json = "0.14"
tungstenite = { version = "0.21", optional = true } tungstenite = { version = "0.24", optional = true }
[dev-dependencies] [dev-dependencies]
criterion = "0.5" criterion = "0.5"

View file

@ -28,11 +28,13 @@ impl InMessage {
match ws_message { match ws_message {
Message::Text(text) => { Message::Text(text) => {
let mut text: Vec<u8> = text.into(); let mut text: Vec<u8> = text.as_bytes().to_owned();
::simd_json::serde::from_slice(&mut text).context("deserialize with serde") ::simd_json::serde::from_slice(&mut text).context("deserialize with serde")
} }
Message::Binary(mut bytes) => { Message::Binary(bytes) => {
let mut bytes = bytes.to_vec();
::simd_json::serde::from_slice(&mut bytes[..]).context("deserialize with serde") ::simd_json::serde::from_slice(&mut bytes[..]).context("deserialize with serde")
} }
_ => Err(anyhow::anyhow!("Message is neither text nor binary")), _ => Err(anyhow::anyhow!("Message is neither text nor binary")),

View file

@ -35,8 +35,8 @@ impl OutMessage {
use tungstenite::Message::{Binary, Text}; use tungstenite::Message::{Binary, Text};
let mut text: Vec<u8> = match message { let mut text: Vec<u8> = match message {
Text(text) => text.into(), Text(text) => text.as_bytes().to_owned(),
Binary(bytes) => String::from_utf8(bytes)?.into(), Binary(bytes) => String::from_utf8(bytes.to_vec())?.into(),
_ => return Err(anyhow::anyhow!("Message is neither text nor bytes")), _ => return Err(anyhow::anyhow!("Message is neither text nor bytes")),
}; };