mirror of https://github.com/ospab/ostp.git
Refactor: Integrate portable-atomic to transparently emulate 64-bit atomics on 32-bit router architectures like MIPS and ensure absolute hardware-independent metrics tracking
This commit is contained in:
parent
4e8513b597
commit
0d414e5000
|
|
@ -105,10 +105,10 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
version = "1.5.0"
|
||||
name = "base64"
|
||||
version = "0.22.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
||||
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
||||
|
||||
[[package]]
|
||||
name = "blake2"
|
||||
|
|
@ -463,12 +463,6 @@ dependencies = [
|
|||
"windows-link",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libm"
|
||||
version = "0.2.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.29"
|
||||
|
|
@ -492,16 +486,6 @@ dependencies = [
|
|||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"libm",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.21.4"
|
||||
|
|
@ -522,9 +506,10 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
|
|||
|
||||
[[package]]
|
||||
name = "ostp"
|
||||
version = "0.1.0"
|
||||
version = "0.1.20"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
"clap",
|
||||
"ostp-client",
|
||||
"ostp-server",
|
||||
|
|
@ -536,12 +521,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "ostp-client"
|
||||
version = "0.1.0"
|
||||
version = "0.1.20"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
"ostp-core",
|
||||
"ostp-obfuscator",
|
||||
"portable-atomic",
|
||||
"rand",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
|
@ -552,7 +537,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "ostp-core"
|
||||
version = "0.1.0"
|
||||
version = "0.1.20"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
@ -576,29 +561,19 @@ dependencies = [
|
|||
"lazy_static",
|
||||
"ostp-client",
|
||||
"ostp-core",
|
||||
"portable-atomic",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ostp-obfuscator"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"rand",
|
||||
"rand_distr",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ostp-server"
|
||||
version = "0.1.0"
|
||||
version = "0.1.20"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
"ostp-core",
|
||||
"ostp-obfuscator",
|
||||
"rand",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
|
@ -635,6 +610,12 @@ dependencies = [
|
|||
"universal-hash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "portable-atomic"
|
||||
version = "1.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.21"
|
||||
|
|
@ -692,16 +673,6 @@ dependencies = [
|
|||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_distr"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
|
||||
dependencies = [
|
||||
"num-traits",
|
||||
"rand",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.1"
|
||||
|
|
|
|||
|
|
@ -25,3 +25,4 @@ tokio = { version = "1.37", features = ["rt-multi-thread", "macros", "net", "tim
|
|||
tracing = "0.1"
|
||||
x25519-dalek = "2"
|
||||
sha2 = "0.10"
|
||||
portable-atomic = "1.10"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ ostp-core = { path = "../ostp-core" }
|
|||
rand.workspace = true
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
portable-atomic.workspace = true
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
wintun = "0.4.0"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use std::time::{Duration, SystemTime};
|
||||
use std::sync::atomic::{AtomicU64, Ordering};
|
||||
use std::sync::atomic::Ordering;
|
||||
use portable_atomic::AtomicU64;
|
||||
use std::sync::Arc;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
|
|
|
|||
|
|
@ -74,8 +74,8 @@ pub async fn run_client(config: crate::config::ClientConfig) -> Result<()> {
|
|||
let (client_msgs_tx, client_msgs_rx) = mpsc::channel(10000);
|
||||
|
||||
let metrics = Arc::new(BridgeMetrics {
|
||||
bytes_sent: std::sync::atomic::AtomicU64::new(0),
|
||||
bytes_recv: std::sync::atomic::AtomicU64::new(0),
|
||||
bytes_sent: portable_atomic::AtomicU64::new(0),
|
||||
bytes_recv: portable_atomic::AtomicU64::new(0),
|
||||
});
|
||||
|
||||
let bridge = Bridge::new(&config, metrics)?;
|
||||
|
|
|
|||
|
|
@ -17,3 +17,4 @@ ostp-client = { path = "../ostp-client" }
|
|||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
lazy_static = "1.4"
|
||||
portable-atomic = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@ pub extern "system" fn Java_net_ostp_client_OstpClientSdk_startClient(
|
|||
let (client_msgs_tx, client_msgs_rx) = mpsc::channel(512);
|
||||
|
||||
let metrics = Arc::new(BridgeMetrics {
|
||||
bytes_sent: std::sync::atomic::AtomicU64::new(0),
|
||||
bytes_recv: std::sync::atomic::AtomicU64::new(0),
|
||||
bytes_sent: portable_atomic::AtomicU64::new(0),
|
||||
bytes_recv: portable_atomic::AtomicU64::new(0),
|
||||
});
|
||||
|
||||
let bridge = match Bridge::new(&config, Arc::clone(&metrics)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue