diff --git a/Cargo.lock b/Cargo.lock index de1e6b1..9230b2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/Cargo.toml b/Cargo.toml index 4e3365d..0f6c1d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/ostp-client/Cargo.toml b/ostp-client/Cargo.toml index 13d28db..41edb4f 100644 --- a/ostp-client/Cargo.toml +++ b/ostp-client/Cargo.toml @@ -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" diff --git a/ostp-client/src/bridge.rs b/ostp-client/src/bridge.rs index 2c07e50..c7b5eac 100644 --- a/ostp-client/src/bridge.rs +++ b/ostp-client/src/bridge.rs @@ -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}; diff --git a/ostp-client/src/runner.rs b/ostp-client/src/runner.rs index b7b88aa..1169c66 100644 --- a/ostp-client/src/runner.rs +++ b/ostp-client/src/runner.rs @@ -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)?; diff --git a/ostp-jni/Cargo.toml b/ostp-jni/Cargo.toml index 890f964..63b6d8d 100644 --- a/ostp-jni/Cargo.toml +++ b/ostp-jni/Cargo.toml @@ -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 } diff --git a/ostp-jni/src/lib.rs b/ostp-jni/src/lib.rs index 9d07e15..8317ac5 100644 --- a/ostp-jni/src/lib.rs +++ b/ostp-jni/src/lib.rs @@ -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)) {