diff --git a/Cargo.toml b/Cargo.toml index 64f76a2..d1484d8 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,64 +14,64 @@ crate-type = ["cdylib", "rlib"] [dependencies] solana-sdk = "3.0.0" -solana-client = "3.0.0" +solana-client = "3.1.4" solana-program = "3.0.0" -solana-rpc-client = "3.0.0" -solana-rpc-client-api = "3.0.0" -solana-transaction-status = "3.0.0" -solana-account-decoder = "3.0.0" -solana-hash = "3.0.0" -solana-entry = "3.0.0" -solana-rpc-client-nonce-utils = "3.0.0" -solana-perf = "3.0.0" -solana-metrics = "3.0.0" -spl-associated-token-account = "7.0.0" -borsh = { version = "1.5.3", features = ["derive"] } -serde = { version = "1.0.215", features = ["derive"] } +solana-rpc-client = "3.1.4" +solana-rpc-client-api = "3.1.4" +solana-transaction-status = "3.1.4" +solana-account-decoder = "3.1.4" +solana-hash = "4.0.1" +solana-entry = "3.1.4" +solana-rpc-client-nonce-utils = "3.1.4" +solana-perf = "3.1.4" +solana-metrics = "3.1.4" +spl-associated-token-account = "8.0.0" +borsh = { version = "1.6.0", features = ["derive"] } +serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.134" serde-big-array = "0.5.1" futures = "0.3.31" futures-util = "0.3.31" base64 = "0.22.1" -rand = "0.9.0" -bincode = "1.3.3" +rand = "0.9.2" +bincode = "1.3" anyhow = "1.0.90" -yellowstone-grpc-client = { version = "9.0.0" } -yellowstone-grpc-proto = { version = "9.0.0" } +yellowstone-grpc-client = { version = "10.2.0" } +yellowstone-grpc-proto = { version = "10.1.1" } tokio = { version = "1.42.0", features = ["full", "rt-multi-thread"]} tonic = { version = "0.14.2", features = ["transport"] } -rustls = { version = "0.23.23", features = ["ring"], default-features = false } -rustls-native-certs = "0.8.1" -tokio-rustls = "0.26.1" -log = "0.4.22" -chrono = "0.4.39" +rustls = { version = "0.23.35", features = ["ring"], default-features = false } +rustls-native-certs = "0.8.2" +tokio-rustls = "0.26.4" +log = "0.4.29" +chrono = "0.4.42" regex = "1" -tracing = "0.1.41" -thiserror = "2.0.11" +tracing = "0.1.43" +thiserror = "2.0.17" async-trait = "0.1.86" lazy_static = "1.5.0" once_cell = "1.20.3" -dashmap = "6.0.1" +dashmap = "6.1.0" prost = "0.14.1" prost-types = "0.14.1" -num_enum = "0.7.3" +num_enum = "0.7.5" num-derive = "0.4.2" num-traits = "0.2.19" hex = "0.4.3" -bytemuck = { version = "1.4.0" } +bytemuck = { version = "1.24.0" } arrayref = "0.3.6" -borsh-derive = "1.5.5" -indicatif = "0.18.0" +borsh-derive = "1.6.0" +indicatif = "0.18.3" maplit = "1.0.2" env_logger = "0.11.8" crossbeam = "0.8.4" crossbeam-queue = "0.3.12" -parking_lot = "0.12.1" -wide = "0.7" -spl-token = "8.0.0" -spl-token-2022 = "9.0.0" -solana-commitment-config = { version = "3.0.0", features = ["serde"] } +parking_lot = "0.12.5" +wide = "1.1.0" +spl-token = "9.0.0" +spl-token-2022 = "10.0.0" +solana-commitment-config = { version = "3.1.0", features = ["serde"] } tonic-prost = "0.14.2" [dev-dependencies] -criterion = { version = "0.5", features = ["html_reports"] } \ No newline at end of file +criterion = { version = "0.8.1", features = ["html_reports"] } \ No newline at end of file diff --git a/src/streaming/common/simd_utils.rs b/src/streaming/common/simd_utils.rs index 8aaf1f0..8e60461 100644 --- a/src/streaming/common/simd_utils.rs +++ b/src/streaming/common/simd_utils.rs @@ -1,4 +1,5 @@ use wide::*; +use wide::CmpEq; /// SIMD-accelerated data parsing utilities pub struct SimdUtils; @@ -29,7 +30,7 @@ impl SimdUtils { let chunk_a = u8x16::from(&a[offset..offset + 16]); let chunk_b = u8x16::from(&b[offset..offset + 16]); - if !chunk_a.cmp_eq(chunk_b).all() { + if !chunk_a.simd_eq(chunk_b).all() { return false; } } @@ -90,7 +91,7 @@ impl SimdUtils { // Use SIMD to process 16-byte discriminators let data_chunk = u8x16::from(&data[..16]); let disc_chunk = u8x16::from(discriminator); - data_chunk.cmp_eq(disc_chunk).all() + data_chunk.simd_eq(disc_chunk).all() } _ => { // For other lengths, use generic SIMD comparison @@ -128,7 +129,7 @@ impl SimdUtils { let chunk = &haystack[start..start + 16]; let target_vec = u8x16::splat(first_byte); let chunk_vec = u8x16::from(chunk); - let matches = chunk_vec.cmp_eq(target_vec); + let matches = chunk_vec.simd_eq(target_vec); // Check each match position let matches_array: [u8; 16] = matches.into();