mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
Merge pull request #217 from greatest-ape/work-2025-01-12
Update dependencies
This commit is contained in:
commit
0157ce5c86
16 changed files with 598 additions and 749 deletions
1271
Cargo.lock
generated
1271
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
2
TODO.md
2
TODO.md
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")?;
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
|
|
||||||
|
|
@ -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")]
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
|
|
||||||
|
|
@ -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"] }
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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")),
|
||||||
|
|
|
||||||
|
|
@ -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")),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue