From ea6c9d3ea92ed97102976c50985ff71cfd5a6589 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Mon, 18 Nov 2024 17:51:15 +0100 Subject: [PATCH 1/8] fix --- sds-bindings-utils/Cargo.lock | 3 ++ sds-go/rust/Cargo.lock | 3 ++ sds/Cargo.lock | 4 +- sds/Cargo.toml | 10 +++-- sds/src/lib.rs | 2 + sds/src/rule_match.rs | 2 + sds/src/scanner/config.rs | 3 ++ sds/src/scanner/mod.rs | 60 ++++++++++++++++++++------ sds/src/scanner/regex_rule/compiled.rs | 5 +++ sds/src/scanner/regex_rule/config.rs | 12 ++++-- 10 files changed, 83 insertions(+), 21 deletions(-) diff --git a/sds-bindings-utils/Cargo.lock b/sds-bindings-utils/Cargo.lock index 28532741..bc7518f2 100644 --- a/sds-bindings-utils/Cargo.lock +++ b/sds-bindings-utils/Cargo.lock @@ -299,6 +299,7 @@ dependencies = [ "chrono", "crc32fast", "farmhash", + "getrandom", "iban_validate", "lazy_static", "metrics", @@ -457,8 +458,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] diff --git a/sds-go/rust/Cargo.lock b/sds-go/rust/Cargo.lock index 24a77da6..43452e6e 100644 --- a/sds-go/rust/Cargo.lock +++ b/sds-go/rust/Cargo.lock @@ -299,6 +299,7 @@ dependencies = [ "chrono", "crc32fast", "farmhash", + "getrandom", "iban_validate", "lazy_static", "metrics", @@ -467,8 +468,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] diff --git a/sds/Cargo.lock b/sds/Cargo.lock index 692d5457..95200134 100644 --- a/sds/Cargo.lock +++ b/sds/Cargo.lock @@ -687,6 +687,7 @@ dependencies = [ "criterion", "dd-sds", "farmhash", + "getrandom", "httpmock", "iban_validate", "lazy_static", @@ -1012,8 +1013,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -2720,7 +2723,6 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/sds/Cargo.toml b/sds/Cargo.toml index 6a522fcd..f2fe9e82 100644 --- a/sds/Cargo.toml +++ b/sds/Cargo.toml @@ -9,8 +9,9 @@ license = "Apache-2.0" members = ["tools/fuzz"] [features] -default = [] -testing = [] +default = ["wasm_incompatible"] +testing = ["wasm_incompatible"] +wasm_incompatible = ["dep:aws-sign-v4"] # Depreacted - Support hash from UTF-16 encoded bytes for backward compatibility. Users should use instead standalone hash match action utf16_hash_match_action = [] @@ -38,12 +39,13 @@ iban_validate = "4" serde_yaml = "0.9.34" lazy_static = "1.5.0" reqwest = { version = "0.12", default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration", "rustls-tls-native-roots"] } -aws-sign-v4 = "0.3.0" chrono = { version = "0.4", features = ["serde"] } slotmap = "1.0.7" base64 = "0.22.1" serde_json = "1.0.114" rayon = "1.10.0" +aws-sign-v4 = { version = "0.3.0", optional = true } +getrandom = { version = "0.2", features = ["js"] } [dev-dependencies] rand = "0.8.5" @@ -53,7 +55,7 @@ luhn = "1.0.1" serde_json = "1.0.114" serde_test = "1.0.176" httpmock = "0.7.0" -tokio = { version = "1", features = ["full"] } +tokio = { version = "1", features = ["rt"] } dd-sds = { path = ".", features = ["bench"] } threadpool = "1.8.1" diff --git a/sds/src/lib.rs b/sds/src/lib.rs index 3583cbef..3937cbe8 100644 --- a/sds/src/lib.rs +++ b/sds/src/lib.rs @@ -7,6 +7,7 @@ mod encoding; mod event; mod match_action; +#[cfg(feature = "wasm_incompatible")] mod match_validation; mod normalization; mod observability; @@ -28,6 +29,7 @@ pub use encoding::{EncodeIndices, Encoding, Utf8Encoding}; pub use event::{Event, EventVisitor, VisitStringResult}; pub use match_action::{MatchAction, PartialRedactDirection}; +#[cfg(feature = "wasm_incompatible")] pub use match_validation::{ config::AwsConfig, config::AwsType, config::HttpMethod, config::HttpValidatorConfigBuilder, config::InternalMatchValidationType, config::MatchValidationType, config::RequestHeader, diff --git a/sds/src/rule_match.rs b/sds/src/rule_match.rs index bd5c6159..50533b8c 100644 --- a/sds/src/rule_match.rs +++ b/sds/src/rule_match.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "wasm_incompatible")] use crate::match_validation::match_status::MatchStatus; use crate::{encoding::Encoding, path::Path}; use std::fmt::Debug; @@ -34,6 +35,7 @@ pub struct RuleMatch { pub match_value: Option, // match status updated by the validate_matches scanner method + #[cfg(feature = "wasm_incompatible")] pub match_status: MatchStatus, } diff --git a/sds/src/scanner/config.rs b/sds/src/scanner/config.rs index 9a037aed..c09c0b67 100644 --- a/sds/src/scanner/config.rs +++ b/sds/src/scanner/config.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "wasm_incompatible")] use crate::match_validation::config::{InternalMatchValidationType, MatchValidationType}; use crate::scanner::error::CreateScannerError; use crate::scanner::CompiledRuleDyn; @@ -10,8 +11,10 @@ pub trait RuleConfig: Send + Sync { label: Labels, ) -> Result, CreateScannerError>; + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option { self.get_match_validation_type() .map(|x| x.get_internal_match_validation_type()) diff --git a/sds/src/scanner/mod.rs b/sds/src/scanner/mod.rs index bf548799..1bbdc8b1 100644 --- a/sds/src/scanner/mod.rs +++ b/sds/src/scanner/mod.rs @@ -1,12 +1,14 @@ use crate::encoding::Encoding; use crate::event::Event; +#[cfg(feature = "wasm_incompatible")] use crate::match_validation::{ config::InternalMatchValidationType, config::MatchValidationType, match_status::MatchStatus, match_validator::MatchValidator, }; use rayon::prelude::*; +#[cfg(feature = "wasm_incompatible")] use error::{MatchValidationError, MatchValidatorCreationError}; use crate::observability::labels::Labels; @@ -89,8 +91,10 @@ pub trait CompiledRuleDyn: Send + Sync { // default is to do nothing } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType>; } @@ -144,10 +148,12 @@ impl CompiledRuleDyn for T { T::on_excluded_match_multipass_v0(self) } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { T::get_match_validation_type(self) } + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { T::get_internal_match_validation_type(self) } @@ -191,9 +197,11 @@ pub trait CompiledRule: Send + Sync { // default is to do nothing } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; // This is the match validation type key used in the match_validators_per_type map + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType>; } @@ -209,6 +217,7 @@ where self.as_ref().convert_to_compiled_rule(rule_index, labels) } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { self.as_ref().get_match_validation_type() } @@ -240,6 +249,7 @@ pub struct Scanner { scanner_features: ScannerFeatures, metrics: ScannerMetrics, labels: Labels, + #[cfg(feature = "wasm_incompatible")] match_validators_per_type: AHashMap>, } @@ -260,6 +270,7 @@ impl Scanner { let mut excluded_matches = AHashSet::new(); + #[cfg(feature = "wasm_incompatible")] // Measure detection time let start = std::time::Instant::now(); access_regex_caches(|regex_caches| { @@ -310,21 +321,25 @@ impl Scanner { will_mutate }); } - // Record detection time - self.metrics - .duration_ns - .increment(start.elapsed().as_nanos() as u64); - // Add number of scanned events - self.metrics.num_scanned_events.increment(1); - // Add number of matches - self.metrics - .match_count - .increment(output_rule_matches.len() as u64); + #[cfg(feature = "wasm_incompatible")] + { + // Record detection time + self.metrics + .duration_ns + .increment(start.elapsed().as_nanos() as u64); + // Add number of scanned events + self.metrics.num_scanned_events.increment(1); + // Add number of matches + self.metrics + .match_count + .increment(output_rule_matches.len() as u64); + } output_rule_matches } - pub fn validate_matches( + #[cfg(feature = "wasm_incompatible")] + pub async fn validate_matches( &self, rule_matches: &mut Vec, ) -> Result<(), MatchValidationError> { @@ -459,6 +474,7 @@ impl Scanner { let rule = &self.rules[rule_match.rule_index]; + #[cfg(feature = "wasm_incompatible")] let match_status: MatchStatus = if rule.get_match_validation_type().is_some() { MatchStatus::NotChecked } else { @@ -473,6 +489,7 @@ impl Scanner { end_index_exclusive: custom_end, shift_offset, match_value: matched_content_copy, + #[cfg(feature = "wasm_incompatible")] match_status, } } @@ -588,8 +605,10 @@ impl ScannerBuilder<'_> { pub fn build(self) -> Result { let mut scanner_features = self.scanner_features.clone(); + #[cfg(feature = "wasm_incompatible")] let mut match_validators_per_type = AHashMap::new(); + #[cfg(feature = "wasm_incompatible")] for rule in self.rules.iter() { if let Some(match_validation_type) = rule.get_match_validation_type() { if match_validation_type.can_create_match_validator() { @@ -642,6 +661,7 @@ impl ScannerBuilder<'_> { scoped_ruleset, scanner_features, metrics: ScannerMetrics::new(&self.labels), + #[cfg(feature = "wasm_incompatible")] match_validators_per_type, labels: self.labels, }) @@ -849,10 +869,12 @@ mod test { match_emitter.emit(StringMatch { start: 10, end: 16 }); } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { None } + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { None } @@ -1535,7 +1557,6 @@ mod test { shift_offset: 0, match_value: None, - match_status: MatchStatus::NotAvailable, } ); @@ -1551,7 +1572,6 @@ mod test { shift_offset: 0, match_value: None, - match_status: MatchStatus::NotAvailable, } ); @@ -2314,6 +2334,7 @@ mod test { assert!(err.is_err()); } + #[cfg(feature = "wasm_incompatible")] #[test] fn test_should_allocate_match_validator_depending_on_match_type() { use crate::match_validation::config::AwsConfig; @@ -2542,8 +2563,14 @@ mod test { _ => assert!(false), } } +<<<<<<< HEAD #[test] fn test_mock_multiple_match_validators() { +======= + #[cfg(feature = "wasm_incompatible")] + #[tokio::test] + async fn test_mock_multiple_match_validators() { +>>>>>>> c61f7cd (wasm-incompatible features) let server = MockServer::start(); // Create a mock on the server. @@ -2643,8 +2670,14 @@ mod test { assert_eq!(matches[0].match_status, MatchStatus::Valid); } +<<<<<<< HEAD #[test] fn test_mock_aws_validator() { +======= + #[tokio::test] + #[cfg(feature = "wasm_incompatible")] + async fn test_mock_aws_validator() { +>>>>>>> c61f7cd (wasm-incompatible features) let server = MockServer::start(); let server_url = server.url("/").to_string(); @@ -2778,6 +2811,7 @@ mod test { ); } + #[cfg(feature = "wasm_incompatible")] mod metrics_test { use crate::match_action::MatchAction; use crate::scanner::regex_rule::config::{ProximityKeywordsConfig, RegexRuleConfig}; diff --git a/sds/src/scanner/regex_rule/compiled.rs b/sds/src/scanner/regex_rule/compiled.rs index a8542ded..bba4763b 100644 --- a/sds/src/scanner/regex_rule/compiled.rs +++ b/sds/src/scanner/regex_rule/compiled.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "wasm_incompatible")] use crate::match_validation::config::{InternalMatchValidationType, MatchValidationType}; use crate::proximity_keywords::{ get_prefix_start, is_index_within_prefix, CompiledExcludedProximityKeywords, @@ -25,7 +26,9 @@ pub struct RegexCompiledRule { pub excluded_keywords: Option, pub validator: Option>, pub metrics: RuleMetrics, + #[cfg(feature = "wasm_incompatible")] pub match_validation_type: Option, + #[cfg(feature = "wasm_incompatible")] pub internal_match_validation_type: Option, } @@ -90,6 +93,7 @@ impl CompiledRule for RegexCompiledRule { self.metrics.false_positive_excluded_attributes.increment(1); } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { match &self.match_validation_type { Some(match_validation_type) => Some(match_validation_type), @@ -97,6 +101,7 @@ impl CompiledRule for RegexCompiledRule { } } + #[cfg(feature = "wasm_incompatible")] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { match &self.internal_match_validation_type { Some(internal_match_validation_type) => Some(internal_match_validation_type), diff --git a/sds/src/scanner/regex_rule/config.rs b/sds/src/scanner/regex_rule/config.rs index c855fff0..72e5182c 100644 --- a/sds/src/scanner/regex_rule/config.rs +++ b/sds/src/scanner/regex_rule/config.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "wasm_incompatible")] use crate::match_validation::config::MatchValidationType; use crate::proximity_keywords::compile_keywords_proximity_config; use crate::scanner::config::RuleConfig; @@ -26,6 +27,7 @@ pub struct RegexRuleConfig { #[serde(default)] pub labels: Labels, + #[cfg(feature = "wasm_incompatible")] pub match_validation_type: Option, } @@ -38,7 +40,7 @@ impl RegexRuleConfig { proximity_keywords: None, validator: None, labels: Labels::default(), - + #[cfg(feature = "wasm_incompatible")] match_validation_type: None, } } @@ -65,6 +67,7 @@ impl RegexRuleConfig { self.mutate_clone(|x| x.labels = labels) } + #[cfg(feature = "wasm_incompatible")] pub fn match_validation_type(&self, match_validation_type: MatchValidationType) -> Self { self.mutate_clone(|x| x.match_validation_type = Some(match_validation_type)) } @@ -77,7 +80,7 @@ impl RegexRuleConfig { proximity_keywords: self.proximity_keywords.clone(), validator: self.validator.clone(), labels: self.labels.clone(), - + #[cfg(feature = "wasm_incompatible")] match_validation_type: self.match_validation_type.clone(), }) } @@ -118,13 +121,16 @@ impl RuleConfig for RegexRuleConfig { .clone() .map(|x| Arc::new(x) as Arc), metrics: RuleMetrics::new(&rule_labels), + #[cfg(feature = "wasm_incompatible")] match_validation_type: self.get_match_validation_type().cloned(), + #[cfg(feature = "wasm_incompatible")] internal_match_validation_type: self .get_match_validation_type() .map(|x| x.get_internal_match_validation_type()), })) } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { match &self.match_validation_type { Some(match_validation_type) => Some(match_validation_type), @@ -181,7 +187,7 @@ mod test { proximity_keywords: None, validator: None, labels: Labels::empty(), - + #[cfg(feature = "wasm_incompatible")] match_validation_type: None, } ); From 5abdd10f5d413cfc89ad937ff04b763975f0e098 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Mon, 18 Nov 2024 17:51:55 +0100 Subject: [PATCH 2/8] fix --- sds-bindings-utils/Cargo.lock | 94 +++++++----------------------- sds-go/rust/Cargo.lock | 104 ---------------------------------- sds/Cargo.toml | 2 +- 3 files changed, 22 insertions(+), 178 deletions(-) diff --git a/sds-bindings-utils/Cargo.lock b/sds-bindings-utils/Cargo.lock index bc7518f2..b2448ac3 100644 --- a/sds-bindings-utils/Cargo.lock +++ b/sds-bindings-utils/Cargo.lock @@ -83,20 +83,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" -[[package]] -name = "aws-sign-v4" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a35b1c56648ef2a4eefb5a9e4152bf05310c48c459b9e661a8ea80517e0c2d7" -dependencies = [ - "chrono", - "hex", - "http", - "ring", - "sha256", - "url", -] - [[package]] name = "backtrace" version = "0.3.73" @@ -131,12 +117,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] +<<<<<<< HEAD name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", +======= +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite", + "piper", +>>>>>>> 612b28d (fix default) ] [[package]] @@ -200,15 +199,6 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" -[[package]] -name = "cpufeatures" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -dependencies = [ - "libc", -] - [[package]] name = "crc32fast" version = "1.4.2" @@ -243,16 +233,6 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "darling" version = "0.20.10" @@ -293,7 +273,12 @@ name = "dd-sds" version = "0.1.2" dependencies = [ "ahash", +<<<<<<< HEAD "aws-sign-v4", +======= + "async-std", + "async-trait", +>>>>>>> 612b28d (fix default) "base62", "base64", "chrono", @@ -329,6 +314,7 @@ dependencies = [ ] [[package]] +<<<<<<< HEAD name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -345,6 +331,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] +======= +>>>>>>> 612b28d (fix default) name = "encoding_rs" version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -441,16 +429,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -1369,30 +1347,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha256" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" -dependencies = [ - "async-trait", - "bytes", - "hex", - "sha2", - "tokio", -] - [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -1649,12 +1603,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - [[package]] name = "unicode-bidi" version = "0.3.15" diff --git a/sds-go/rust/Cargo.lock b/sds-go/rust/Cargo.lock index 43452e6e..c9875997 100644 --- a/sds-go/rust/Cargo.lock +++ b/sds-go/rust/Cargo.lock @@ -60,17 +60,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[package]] -name = "async-trait" -version = "0.1.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -83,20 +72,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" -[[package]] -name = "aws-sign-v4" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a35b1c56648ef2a4eefb5a9e4152bf05310c48c459b9e661a8ea80517e0c2d7" -dependencies = [ - "chrono", - "hex", - "http", - "ring", - "sha256", - "url", -] - [[package]] name = "backtrace" version = "0.3.73" @@ -130,15 +105,6 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -200,15 +166,6 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" -[[package]] -name = "cpufeatures" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -dependencies = [ - "libc", -] - [[package]] name = "crc32fast" version = "1.4.2" @@ -243,16 +200,6 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - [[package]] name = "darling" version = "0.20.10" @@ -293,7 +240,6 @@ name = "dd-sds" version = "0.1.2" dependencies = [ "ahash", - "aws-sign-v4", "base62", "base64", "chrono", @@ -338,16 +284,6 @@ dependencies = [ "serde", ] -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - [[package]] name = "either" version = "1.13.0" @@ -451,16 +387,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -1379,30 +1305,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha256" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" -dependencies = [ - "async-trait", - "bytes", - "hex", - "sha2", - "tokio", -] - [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -1659,12 +1561,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - [[package]] name = "unicode-bidi" version = "0.3.15" diff --git a/sds/Cargo.toml b/sds/Cargo.toml index f2fe9e82..dd068c8d 100644 --- a/sds/Cargo.toml +++ b/sds/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" members = ["tools/fuzz"] [features] -default = ["wasm_incompatible"] +default = [] testing = ["wasm_incompatible"] wasm_incompatible = ["dep:aws-sign-v4"] From 92873d94f20a79a5d358589a3f6b6ebd3deafca5 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Tue, 19 Nov 2024 10:37:03 +0100 Subject: [PATCH 3/8] temp --- sds-bindings-utils/Cargo.lock | 52 ----------------------------------- sds/src/scanner/mod.rs | 45 ++++++++++++++++-------------- 2 files changed, 24 insertions(+), 73 deletions(-) diff --git a/sds-bindings-utils/Cargo.lock b/sds-bindings-utils/Cargo.lock index b2448ac3..f9bd7672 100644 --- a/sds-bindings-utils/Cargo.lock +++ b/sds-bindings-utils/Cargo.lock @@ -60,17 +60,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[package]] -name = "async-trait" -version = "0.1.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -116,28 +105,6 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -[[package]] -<<<<<<< HEAD -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -======= -name = "blocking" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" -dependencies = [ - "async-channel 2.3.1", - "async-task", - "futures-io", - "futures-lite", - "piper", ->>>>>>> 612b28d (fix default) -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -273,12 +240,6 @@ name = "dd-sds" version = "0.1.2" dependencies = [ "ahash", -<<<<<<< HEAD - "aws-sign-v4", -======= - "async-std", - "async-trait", ->>>>>>> 612b28d (fix default) "base62", "base64", "chrono", @@ -313,17 +274,6 @@ dependencies = [ "serde", ] -[[package]] -<<<<<<< HEAD -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - [[package]] name = "either" version = "1.13.0" @@ -331,8 +281,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] -======= ->>>>>>> 612b28d (fix default) name = "encoding_rs" version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/sds/src/scanner/mod.rs b/sds/src/scanner/mod.rs index 1bbdc8b1..b8f9a7e3 100644 --- a/sds/src/scanner/mod.rs +++ b/sds/src/scanner/mod.rs @@ -811,9 +811,13 @@ mod test { use super::{MatchEmitter, ScannerBuilder, StringMatch}; use crate::match_action::{MatchAction, MatchActionValidationError}; + #[cfg(feature = "wasm_incompatible")] use crate::match_validation::config::{AwsConfig, AwsType, MatchValidationType}; + #[cfg(feature = "wasm_incompatible")] use crate::match_validation::config::HttpValidatorConfigBuilder; + + #[cfg(feature = "wasm_incompatible")] use crate::match_validation::validator_utils::generate_aws_headers_and_body; use crate::observability::labels::Labels; use crate::scanner::regex_rule::config::{ @@ -894,6 +898,7 @@ mod test { })) } + #[cfg(feature = "wasm_incompatible")] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { None } @@ -1557,6 +1562,7 @@ mod test { shift_offset: 0, match_value: None, + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1572,6 +1578,7 @@ mod test { shift_offset: 0, match_value: None, + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1587,7 +1594,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1635,7 +1642,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1651,7 +1658,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1667,7 +1674,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1709,7 +1716,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1749,7 +1756,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1789,7 +1796,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -1829,7 +1836,7 @@ mod test { shift_offset: 0, match_value: None, - + #[cfg(feature = "wasm_incompatible")] match_status: MatchStatus::NotAvailable, } ); @@ -2293,6 +2300,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_should_return_match_with_match_validation() { let scanner = ScannerBuilder::new(&[RegexRuleConfig::new("world") .match_action(MatchAction::Redact { @@ -2315,6 +2323,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_should_error_if_no_match_validation() { let scanner = ScannerBuilder::new(&[RegexRuleConfig::new("world") .match_action(MatchAction::Redact { @@ -2334,8 +2343,8 @@ mod test { assert!(err.is_err()); } - #[cfg(feature = "wasm_incompatible")] #[test] + #[cfg(feature = "wasm_incompatible")] fn test_should_allocate_match_validator_depending_on_match_type() { use crate::match_validation::config::AwsConfig; @@ -2429,6 +2438,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_aws_id_only_shall_not_validate() { let rule_aws_id = RegexRuleConfig::new("aws_id") .match_action(MatchAction::Redact { @@ -2447,6 +2457,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_mock_same_http_validator_several_matches() { let server = MockServer::start(); @@ -2528,6 +2539,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_mock_http_timeout() { let server = MockServer::start(); let _ = server.mock(|when, then| { @@ -2563,14 +2575,9 @@ mod test { _ => assert!(false), } } -<<<<<<< HEAD #[test] - fn test_mock_multiple_match_validators() { -======= #[cfg(feature = "wasm_incompatible")] - #[tokio::test] - async fn test_mock_multiple_match_validators() { ->>>>>>> c61f7cd (wasm-incompatible features) + fn test_mock_multiple_match_validators() { let server = MockServer::start(); // Create a mock on the server. @@ -2633,6 +2640,7 @@ mod test { } #[test] + #[cfg(feature = "wasm_incompatible")] fn test_mock_endpoint_with_multiple_hosts() { let server = MockServer::start(); // Create a mock on the server. @@ -2670,14 +2678,9 @@ mod test { assert_eq!(matches[0].match_status, MatchStatus::Valid); } -<<<<<<< HEAD #[test] - fn test_mock_aws_validator() { -======= - #[tokio::test] #[cfg(feature = "wasm_incompatible")] - async fn test_mock_aws_validator() { ->>>>>>> c61f7cd (wasm-incompatible features) + fn test_mock_aws_validator() { let server = MockServer::start(); let server_url = server.url("/").to_string(); From 15b70fa46817e31c4089db2f85c5950422baabf0 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Tue, 19 Nov 2024 17:23:41 +0100 Subject: [PATCH 4/8] commit --- sds-bindings-utils/Cargo.lock | 533 +++++++++++++++++++------ sds-go/rust/Cargo.lock | 533 +++++++++++++++++++------ sds/Cargo.toml | 15 +- sds/src/lib.rs | 4 +- sds/src/rule_match.rs | 4 +- sds/src/scanner/config.rs | 6 +- sds/src/scanner/mod.rs | 88 ++-- sds/src/scanner/regex_rule/compiled.rs | 10 +- sds/src/scanner/regex_rule/config.rs | 18 +- 9 files changed, 904 insertions(+), 307 deletions(-) diff --git a/sds-bindings-utils/Cargo.lock b/sds-bindings-utils/Cargo.lock index f9bd7672..c642c4be 100644 --- a/sds-bindings-utils/Cargo.lock +++ b/sds-bindings-utils/Cargo.lock @@ -60,6 +60,17 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -72,6 +83,20 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-sign-v4" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a35b1c56648ef2a4eefb5a9e4152bf05310c48c459b9e661a8ea80517e0c2d7" +dependencies = [ + "chrono", + "hex", + "http", + "ring", + "sha256", + "url", +] + [[package]] name = "backtrace" version = "0.3.73" @@ -105,6 +130,15 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -119,9 +153,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "cc" @@ -166,6 +200,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cpufeatures" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -200,6 +243,16 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "darling" version = "0.20.10" @@ -240,6 +293,7 @@ name = "dd-sds" version = "0.1.2" dependencies = [ "ahash", + "aws-sign-v4", "base62", "base64", "chrono", @@ -274,6 +328,27 @@ dependencies = [ "serde", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "either" version = "1.13.0" @@ -282,9 +357,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -329,9 +404,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -339,33 +414,33 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-io", @@ -377,6 +452,16 @@ dependencies = [ "slab", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -478,15 +563,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -513,7 +598,7 @@ dependencies = [ "hyper", "hyper-util", "rustls", - "rustls-native-certs 0.8.0", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -522,9 +607,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", @@ -535,7 +620,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] @@ -572,6 +656,124 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -580,12 +782,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -612,9 +825,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "itoa" @@ -643,6 +856,12 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "log" version = "0.4.22" @@ -752,9 +971,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -786,31 +1005,11 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -1026,9 +1225,9 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64", "bytes", @@ -1052,7 +1251,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs 0.7.3", + "rustls-native-certs", "rustls-pemfile", "rustls-pki-types", "serde", @@ -1099,9 +1298,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustls" -version = "0.23.13" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "once_cell", "ring", @@ -1111,19 +1310,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework", -] - [[package]] name = "rustls-native-certs" version = "0.8.0" @@ -1139,19 +1325,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -1172,9 +1357,9 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -1201,9 +1386,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -1295,6 +1480,30 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha256" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" +dependencies = [ + "async-trait", + "bytes", + "hex", + "sha2", + "tokio", +] + [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -1341,6 +1550,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.11.1" @@ -1373,6 +1588,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -1445,6 +1671,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -1462,9 +1698,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -1499,27 +1735,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - [[package]] name = "tower-service" version = "0.3.3" @@ -1552,10 +1767,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "unicode-bidi" -version = "0.3.15" +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" @@ -1563,15 +1778,6 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -1586,15 +1792,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "version_check" version = "0.9.4" @@ -1835,6 +2053,42 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -1856,8 +2110,51 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/sds-go/rust/Cargo.lock b/sds-go/rust/Cargo.lock index c9875997..f6b64315 100644 --- a/sds-go/rust/Cargo.lock +++ b/sds-go/rust/Cargo.lock @@ -60,6 +60,17 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -72,6 +83,20 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-sign-v4" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a35b1c56648ef2a4eefb5a9e4152bf05310c48c459b9e661a8ea80517e0c2d7" +dependencies = [ + "chrono", + "hex", + "http", + "ring", + "sha256", + "url", +] + [[package]] name = "backtrace" version = "0.3.73" @@ -105,6 +130,15 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -119,9 +153,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "cc" @@ -166,6 +200,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cpufeatures" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -200,6 +243,16 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "darling" version = "0.20.10" @@ -240,6 +293,7 @@ name = "dd-sds" version = "0.1.2" dependencies = [ "ahash", + "aws-sign-v4", "base62", "base64", "chrono", @@ -284,6 +338,27 @@ dependencies = [ "serde", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "either" version = "1.13.0" @@ -292,9 +367,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -339,9 +414,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -349,33 +424,33 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-io", @@ -387,6 +462,16 @@ dependencies = [ "slab", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -488,15 +573,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -523,7 +608,7 @@ dependencies = [ "hyper", "hyper-util", "rustls", - "rustls-native-certs 0.8.0", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -532,9 +617,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", @@ -545,7 +630,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] @@ -582,6 +666,124 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -590,12 +792,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -622,9 +835,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "itoa" @@ -653,6 +866,12 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "log" version = "0.4.22" @@ -762,9 +981,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -796,31 +1015,11 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -1036,9 +1235,9 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64", "bytes", @@ -1062,7 +1261,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs 0.7.3", + "rustls-native-certs", "rustls-pemfile", "rustls-pki-types", "serde", @@ -1109,9 +1308,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustls" -version = "0.23.13" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "once_cell", "ring", @@ -1121,19 +1320,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework", -] - [[package]] name = "rustls-native-certs" version = "0.8.0" @@ -1149,19 +1335,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -1182,9 +1367,9 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -1211,9 +1396,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -1305,6 +1490,30 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha256" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18278f6a914fa3070aa316493f7d2ddfb9ac86ebc06fa3b83bffda487e9065b0" +dependencies = [ + "async-trait", + "bytes", + "hex", + "sha2", + "tokio", +] + [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -1351,6 +1560,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.11.1" @@ -1383,6 +1598,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -1455,6 +1681,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -1472,9 +1708,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -1509,27 +1745,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - [[package]] name = "tower-service" version = "0.3.3" @@ -1562,10 +1777,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "unicode-bidi" -version = "0.3.15" +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" @@ -1573,15 +1788,6 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -1596,15 +1802,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "version_check" version = "0.9.4" @@ -1845,6 +2063,42 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -1866,8 +2120,51 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/sds/Cargo.toml b/sds/Cargo.toml index dd068c8d..57b1929d 100644 --- a/sds/Cargo.toml +++ b/sds/Cargo.toml @@ -9,9 +9,8 @@ license = "Apache-2.0" members = ["tools/fuzz"] [features] -default = [] -testing = ["wasm_incompatible"] -wasm_incompatible = ["dep:aws-sign-v4"] +default = ["dep:aws-sign-v4", "dep:rayon", "dep:reqwest"] +testing = ["dep:aws-sign-v4", "dep:rayon", "dep:reqwest"] # Depreacted - Support hash from UTF-16 encoded bytes for backward compatibility. Users should use instead standalone hash match action utf16_hash_match_action = [] @@ -38,15 +37,19 @@ iban_validate = "4" # This is deprecated and may switch to `serde_yml` in the future. Waiting for it to mature a bit first. serde_yaml = "0.9.34" lazy_static = "1.5.0" -reqwest = { version = "0.12", default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration", "rustls-tls-native-roots"] } chrono = { version = "0.4", features = ["serde"] } slotmap = "1.0.7" base64 = "0.22.1" serde_json = "1.0.114" -rayon = "1.10.0" -aws-sign-v4 = { version = "0.3.0", optional = true } getrandom = { version = "0.2", features = ["js"] } +# Dependencies used for non-WASM +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +aws-sign-v4 = { version = "0.3.0", optional = true } +rayon = { version = "1.10.0", optional = true } +reqwest = { version = "0.12", default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration", "rustls-tls-native-roots"], optional = true } + + [dev-dependencies] rand = "0.8.5" regex_generate = "0.2.3" diff --git a/sds/src/lib.rs b/sds/src/lib.rs index 3937cbe8..2e97a691 100644 --- a/sds/src/lib.rs +++ b/sds/src/lib.rs @@ -7,7 +7,7 @@ mod encoding; mod event; mod match_action; -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] mod match_validation; mod normalization; mod observability; @@ -29,7 +29,7 @@ pub use encoding::{EncodeIndices, Encoding, Utf8Encoding}; pub use event::{Event, EventVisitor, VisitStringResult}; pub use match_action::{MatchAction, PartialRedactDirection}; -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] pub use match_validation::{ config::AwsConfig, config::AwsType, config::HttpMethod, config::HttpValidatorConfigBuilder, config::InternalMatchValidationType, config::MatchValidationType, config::RequestHeader, diff --git a/sds/src/rule_match.rs b/sds/src/rule_match.rs index 50533b8c..96e2d7e6 100644 --- a/sds/src/rule_match.rs +++ b/sds/src/rule_match.rs @@ -1,4 +1,4 @@ -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use crate::match_validation::match_status::MatchStatus; use crate::{encoding::Encoding, path::Path}; use std::fmt::Debug; @@ -35,7 +35,7 @@ pub struct RuleMatch { pub match_value: Option, // match status updated by the validate_matches scanner method - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub match_status: MatchStatus, } diff --git a/sds/src/scanner/config.rs b/sds/src/scanner/config.rs index c09c0b67..64ce9505 100644 --- a/sds/src/scanner/config.rs +++ b/sds/src/scanner/config.rs @@ -1,4 +1,4 @@ -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use crate::match_validation::config::{InternalMatchValidationType, MatchValidationType}; use crate::scanner::error::CreateScannerError; use crate::scanner::CompiledRuleDyn; @@ -11,10 +11,10 @@ pub trait RuleConfig: Send + Sync { label: Labels, ) -> Result, CreateScannerError>; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option { self.get_match_validation_type() .map(|x| x.get_internal_match_validation_type()) diff --git a/sds/src/scanner/mod.rs b/sds/src/scanner/mod.rs index b8f9a7e3..1b0c3283 100644 --- a/sds/src/scanner/mod.rs +++ b/sds/src/scanner/mod.rs @@ -1,14 +1,14 @@ use crate::encoding::Encoding; use crate::event::Event; -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use crate::match_validation::{ config::InternalMatchValidationType, config::MatchValidationType, match_status::MatchStatus, match_validator::MatchValidator, }; use rayon::prelude::*; -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use error::{MatchValidationError, MatchValidatorCreationError}; use crate::observability::labels::Labels; @@ -91,10 +91,10 @@ pub trait CompiledRuleDyn: Send + Sync { // default is to do nothing } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType>; } @@ -148,12 +148,12 @@ impl CompiledRuleDyn for T { T::on_excluded_match_multipass_v0(self) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { T::get_match_validation_type(self) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { T::get_internal_match_validation_type(self) } @@ -197,11 +197,11 @@ pub trait CompiledRule: Send + Sync { // default is to do nothing } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType>; // This is the match validation type key used in the match_validators_per_type map - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType>; } @@ -217,7 +217,7 @@ where self.as_ref().convert_to_compiled_rule(rule_index, labels) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { self.as_ref().get_match_validation_type() } @@ -249,7 +249,7 @@ pub struct Scanner { scanner_features: ScannerFeatures, metrics: ScannerMetrics, labels: Labels, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validators_per_type: AHashMap>, } @@ -270,7 +270,7 @@ impl Scanner { let mut excluded_matches = AHashSet::new(); - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] // Measure detection time let start = std::time::Instant::now(); access_regex_caches(|regex_caches| { @@ -321,7 +321,7 @@ impl Scanner { will_mutate }); } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] { // Record detection time self.metrics @@ -338,7 +338,7 @@ impl Scanner { output_rule_matches } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub async fn validate_matches( &self, rule_matches: &mut Vec, @@ -474,7 +474,7 @@ impl Scanner { let rule = &self.rules[rule_match.rule_index]; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] let match_status: MatchStatus = if rule.get_match_validation_type().is_some() { MatchStatus::NotChecked } else { @@ -489,7 +489,7 @@ impl Scanner { end_index_exclusive: custom_end, shift_offset, match_value: matched_content_copy, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status, } } @@ -605,10 +605,10 @@ impl ScannerBuilder<'_> { pub fn build(self) -> Result { let mut scanner_features = self.scanner_features.clone(); - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] let mut match_validators_per_type = AHashMap::new(); - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] for rule in self.rules.iter() { if let Some(match_validation_type) = rule.get_match_validation_type() { if match_validation_type.can_create_match_validator() { @@ -661,7 +661,7 @@ impl ScannerBuilder<'_> { scoped_ruleset, scanner_features, metrics: ScannerMetrics::new(&self.labels), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validators_per_type, labels: self.labels, }) @@ -811,13 +811,13 @@ mod test { use super::{MatchEmitter, ScannerBuilder, StringMatch}; use crate::match_action::{MatchAction, MatchActionValidationError}; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] use crate::match_validation::config::{AwsConfig, AwsType, MatchValidationType}; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] use crate::match_validation::config::HttpValidatorConfigBuilder; - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] use crate::match_validation::validator_utils::generate_aws_headers_and_body; use crate::observability::labels::Labels; use crate::scanner::regex_rule::config::{ @@ -873,12 +873,12 @@ mod test { match_emitter.emit(StringMatch { start: 10, end: 16 }); } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { None } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { None } @@ -898,7 +898,7 @@ mod test { })) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { None } @@ -1562,7 +1562,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1578,7 +1578,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1594,7 +1594,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1642,7 +1642,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1658,7 +1658,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1674,7 +1674,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1716,7 +1716,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1756,7 +1756,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1796,7 +1796,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -1836,7 +1836,7 @@ mod test { shift_offset: 0, match_value: None, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_status: MatchStatus::NotAvailable, } ); @@ -2300,7 +2300,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_should_return_match_with_match_validation() { let scanner = ScannerBuilder::new(&[RegexRuleConfig::new("world") .match_action(MatchAction::Redact { @@ -2323,7 +2323,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_should_error_if_no_match_validation() { let scanner = ScannerBuilder::new(&[RegexRuleConfig::new("world") .match_action(MatchAction::Redact { @@ -2344,7 +2344,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_should_allocate_match_validator_depending_on_match_type() { use crate::match_validation::config::AwsConfig; @@ -2438,7 +2438,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_aws_id_only_shall_not_validate() { let rule_aws_id = RegexRuleConfig::new("aws_id") .match_action(MatchAction::Redact { @@ -2457,7 +2457,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_mock_same_http_validator_several_matches() { let server = MockServer::start(); @@ -2539,7 +2539,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_mock_http_timeout() { let server = MockServer::start(); let _ = server.mock(|when, then| { @@ -2576,7 +2576,7 @@ mod test { } } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_mock_multiple_match_validators() { let server = MockServer::start(); @@ -2640,7 +2640,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_mock_endpoint_with_multiple_hosts() { let server = MockServer::start(); // Create a mock on the server. @@ -2679,7 +2679,7 @@ mod test { } #[test] - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn test_mock_aws_validator() { let server = MockServer::start(); let server_url = server.url("/").to_string(); @@ -2814,7 +2814,7 @@ mod test { ); } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] mod metrics_test { use crate::match_action::MatchAction; use crate::scanner::regex_rule::config::{ProximityKeywordsConfig, RegexRuleConfig}; diff --git a/sds/src/scanner/regex_rule/compiled.rs b/sds/src/scanner/regex_rule/compiled.rs index bba4763b..ba07c073 100644 --- a/sds/src/scanner/regex_rule/compiled.rs +++ b/sds/src/scanner/regex_rule/compiled.rs @@ -1,4 +1,4 @@ -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use crate::match_validation::config::{InternalMatchValidationType, MatchValidationType}; use crate::proximity_keywords::{ get_prefix_start, is_index_within_prefix, CompiledExcludedProximityKeywords, @@ -26,9 +26,9 @@ pub struct RegexCompiledRule { pub excluded_keywords: Option, pub validator: Option>, pub metrics: RuleMetrics, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub match_validation_type: Option, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub internal_match_validation_type: Option, } @@ -93,7 +93,7 @@ impl CompiledRule for RegexCompiledRule { self.metrics.false_positive_excluded_attributes.increment(1); } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { match &self.match_validation_type { Some(match_validation_type) => Some(match_validation_type), @@ -101,7 +101,7 @@ impl CompiledRule for RegexCompiledRule { } } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_internal_match_validation_type(&self) -> Option<&InternalMatchValidationType> { match &self.internal_match_validation_type { Some(internal_match_validation_type) => Some(internal_match_validation_type), diff --git a/sds/src/scanner/regex_rule/config.rs b/sds/src/scanner/regex_rule/config.rs index 72e5182c..ad215d24 100644 --- a/sds/src/scanner/regex_rule/config.rs +++ b/sds/src/scanner/regex_rule/config.rs @@ -1,4 +1,4 @@ -#[cfg(feature = "wasm_incompatible")] +#[cfg(not(target_arch = "wasm32"))] use crate::match_validation::config::MatchValidationType; use crate::proximity_keywords::compile_keywords_proximity_config; use crate::scanner::config::RuleConfig; @@ -27,7 +27,7 @@ pub struct RegexRuleConfig { #[serde(default)] pub labels: Labels, - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub match_validation_type: Option, } @@ -40,7 +40,7 @@ impl RegexRuleConfig { proximity_keywords: None, validator: None, labels: Labels::default(), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validation_type: None, } } @@ -67,7 +67,7 @@ impl RegexRuleConfig { self.mutate_clone(|x| x.labels = labels) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] pub fn match_validation_type(&self, match_validation_type: MatchValidationType) -> Self { self.mutate_clone(|x| x.match_validation_type = Some(match_validation_type)) } @@ -80,7 +80,7 @@ impl RegexRuleConfig { proximity_keywords: self.proximity_keywords.clone(), validator: self.validator.clone(), labels: self.labels.clone(), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validation_type: self.match_validation_type.clone(), }) } @@ -121,16 +121,16 @@ impl RuleConfig for RegexRuleConfig { .clone() .map(|x| Arc::new(x) as Arc), metrics: RuleMetrics::new(&rule_labels), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validation_type: self.get_match_validation_type().cloned(), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] internal_match_validation_type: self .get_match_validation_type() .map(|x| x.get_internal_match_validation_type()), })) } - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] fn get_match_validation_type(&self) -> Option<&MatchValidationType> { match &self.match_validation_type { Some(match_validation_type) => Some(match_validation_type), @@ -187,7 +187,7 @@ mod test { proximity_keywords: None, validator: None, labels: Labels::empty(), - #[cfg(feature = "wasm_incompatible")] + #[cfg(not(target_arch = "wasm32"))] match_validation_type: None, } ); From dc19fc0db74295f215b80818f2fef09fb24da544 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Tue, 19 Nov 2024 17:27:47 +0100 Subject: [PATCH 5/8] Handle wasm32 target --- sds/src/scanner/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sds/src/scanner/mod.rs b/sds/src/scanner/mod.rs index 2dbc99b4..18ca389d 100644 --- a/sds/src/scanner/mod.rs +++ b/sds/src/scanner/mod.rs @@ -396,7 +396,7 @@ impl Scanner { } #[cfg(not(target_arch = "wasm32"))] - pub async fn validate_matches( + pub fn validate_matches( &self, rule_matches: &mut Vec, ) -> Result<(), MatchValidationError> { From 955ea047100512f0ff1c96c4ddca3fd6fe177fb8 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Wed, 20 Nov 2024 10:40:40 +0100 Subject: [PATCH 6/8] fix --- sds/src/scanner/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/sds/src/scanner/mod.rs b/sds/src/scanner/mod.rs index dd0bf705..f90bf8ae 100644 --- a/sds/src/scanner/mod.rs +++ b/sds/src/scanner/mod.rs @@ -6,6 +6,7 @@ use crate::match_validation::{ config::InternalMatchValidationType, config::MatchValidationType, match_status::MatchStatus, match_validator::MatchValidator, }; +#[cfg(not(target_arch = "wasm32"))] use rayon::prelude::*; #[cfg(not(target_arch = "wasm32"))] From fa865e61d0414760f61df8d7d70c142c1cd665fd Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Wed, 20 Nov 2024 17:16:21 +0100 Subject: [PATCH 7/8] removing tokyo --- sds/Cargo.lock | 1 - sds/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/sds/Cargo.lock b/sds/Cargo.lock index a8c4ae13..01249f4d 100644 --- a/sds/Cargo.lock +++ b/sds/Cargo.lock @@ -713,7 +713,6 @@ dependencies = [ "slotmap", "thiserror", "threadpool", - "tokio", ] [[package]] diff --git a/sds/Cargo.toml b/sds/Cargo.toml index e882f91b..3a09e149 100644 --- a/sds/Cargo.toml +++ b/sds/Cargo.toml @@ -62,7 +62,6 @@ luhn = "1.0.1" serde_json = "1.0.114" serde_test = "1.0.176" httpmock = "0.7.0" -tokio = { version = "1", features = ["rt"] } dd-sds = { path = ".", features = ["bench"] } threadpool = "1.8.1" From 18d0523c83c28ffaff83cc1a9f2574213c2fc2b4 Mon Sep 17 00:00:00 2001 From: Thomas Rosenblatt Date: Wed, 20 Nov 2024 17:22:06 +0100 Subject: [PATCH 8/8] fix licences --- LICENSE-3rdparty.csv | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index e8786248..2625f4ba 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -29,6 +29,7 @@ crypto-common,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto darling,https://github.com/TedDriggs/darling,MIT,Ted Driggs deranged,https://github.com/jhpratt/deranged,MIT OR Apache-2.0,Jacob Pratt digest,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +displaydoc,https://github.com/yaahc/displaydoc,MIT OR Apache-2.0,Jane Lusby either,https://github.com/rayon-rs/either,MIT OR Apache-2.0,bluss encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen endian-type,https://github.com/Lolirofle/endian-type,MIT,Lolirofle @@ -58,7 +59,18 @@ hyper-util,https://github.com/hyperium/hyper-util,MIT,Sean McArthur , René Kijewski , Ryan Lopopolo " iana-time-zone-haiku,https://github.com/strawlab/iana-time-zone,MIT OR Apache-2.0,René Kijewski iban_validate,https://github.com/ThomasdenH/iban_check,MIT OR Apache-2.0,Thomas den Hollander +icu_collections,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid_transform,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid_transform_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_normalizer,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_normalizer_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_properties,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_properties_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_provider,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_provider_macros,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers ident_case,https://github.com/TedDriggs/ident_case,MIT OR Apache-2.0,Ted Driggs +idna_adapter,https://github.com/hsivonen/idna_adapter,Apache-2.0 OR MIT,The rust-url developers indexmap,https://github.com/bluss/indexmap,Apache-2.0 OR MIT,The indexmap Authors indexmap,https://github.com/indexmap-rs/indexmap,Apache-2.0 OR MIT,The indexmap Authors ipnet,https://github.com/krisprice/ipnet,MIT OR Apache-2.0,Kris Price @@ -66,6 +78,7 @@ itoa,https://github.com/dtolnay/itoa,MIT OR Apache-2.0,David Tolnay libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers +litemap,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers log,https://github.com/rust-lang/log,MIT OR Apache-2.0,The Rust Project Developers memchr,https://github.com/BurntSushi/memchr,Unlicense OR MIT,"Andrew Gallant , bluss" metrics,https://github.com/metrics-rs/metrics,MIT,Toby Lawrence @@ -82,8 +95,6 @@ object,https://github.com/gimli-rs/object,Apache-2.0 OR MIT,The object Authors once_cell,https://github.com/matklad/once_cell,MIT OR Apache-2.0,Aleksey Kladov openssl-probe,https://github.com/alexcrichton/openssl-probe,MIT OR Apache-2.0,Alex Crichton ordered-float,https://github.com/reem/rust-ordered-float,MIT,"Jonathan Reem , Matt Brubeck " -pin-project,https://github.com/taiki-e/pin-project,Apache-2.0 OR MIT,The pin-project Authors -pin-project-internal,https://github.com/taiki-e/pin-project,Apache-2.0 OR MIT,The pin-project-internal Authors pin-project-lite,https://github.com/taiki-e/pin-project-lite,Apache-2.0 OR MIT,The pin-project-lite Authors pin-utils,https://github.com/rust-lang-nursery/pin-utils,MIT OR Apache-2.0,Josef Brandl portable-atomic,https://github.com/taiki-e/portable-atomic,Apache-2.0 OR MIT,The portable-atomic Authors @@ -129,28 +140,31 @@ slotmap,https://github.com/orlp/slotmap,Zlib,Orson Peters , Thomas de Zeeuw " spin,https://github.com/mvdnes/spin-rs,MIT,"Mathijs van de Nes , John Ericson , Joshua Barretto " +stable_deref_trait,https://github.com/storyyeller/stable_deref_trait,MIT OR Apache-2.0,Robert Grosse strsim,https://github.com/rapidfuzz/strsim-rs,MIT,"Danny Guo , maxbachmann " subtle,https://github.com/dalek-cryptography/subtle,BSD-3-Clause,"Isis Lovecruft , Henry de Valence " syn,https://github.com/dtolnay/syn,MIT OR Apache-2.0,David Tolnay sync_wrapper,https://github.com/Actyx/sync_wrapper,Apache-2.0,Actyx AG +synstructure,https://github.com/mystor/synstructure,MIT,Nika Layzell system-configuration,https://github.com/mullvad/system-configuration-rs,MIT OR Apache-2.0,Mullvad VPN thiserror,https://github.com/dtolnay/thiserror,MIT OR Apache-2.0,David Tolnay time,https://github.com/time-rs/time,MIT OR Apache-2.0,"Jacob Pratt , Time contributors" +tinystr,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers tinyvec,https://github.com/Lokathor/tinyvec,Zlib OR Apache-2.0 OR MIT,Lokathor tinyvec_macros,https://github.com/Soveu/tinyvec_macros,MIT OR Apache-2.0 OR Zlib,Soveu tokio,https://github.com/tokio-rs/tokio,MIT,Tokio Contributors tokio-rustls,https://github.com/rustls/tokio-rustls,MIT OR Apache-2.0,The tokio-rustls Authors -tower,https://github.com/tower-rs/tower,MIT,Tower Maintainers +tower-service,https://github.com/tower-rs/tower,MIT,Tower Maintainers tracing,https://github.com/tokio-rs/tracing,MIT,"Eliza Weisman , Tokio Contributors " tracing-core,https://github.com/tokio-rs/tracing,MIT,Tokio Contributors try-lock,https://github.com/seanmonstar/try-lock,MIT,Sean McArthur typenum,https://github.com/paholg/typenum,MIT OR Apache-2.0,"Paho Lurie-Gregg , Andre Bogus " -unicode-bidi,https://github.com/servo/unicode-bidi,MIT OR Apache-2.0,The Servo Project Developers unicode-ident,https://github.com/dtolnay/unicode-ident,(MIT OR Apache-2.0) AND Unicode-DFS-2016,David Tolnay -unicode-normalization,https://github.com/unicode-rs/unicode-normalization,MIT OR Apache-2.0,"kwantam , Manish Goregaokar " unsafe-libyaml,https://github.com/dtolnay/unsafe-libyaml,MIT,David Tolnay untrusted,https://github.com/briansmith/untrusted,ISC,Brian Smith url,https://github.com/servo/rust-url,MIT OR Apache-2.0,The rust-url developers +utf16_iter,https://github.com/hsivonen/utf16_iter,Apache-2.0 OR MIT,Henri Sivonen +utf8_iter,https://github.com/hsivonen/utf8_iter,Apache-2.0 OR MIT,Henri Sivonen want,https://github.com/seanmonstar/want,MIT,Sean McArthur wasi,https://github.com/bytecodealliance/wasi,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,The Cranelift Project Developers wasm-bindgen,https://github.com/rustwasm/wasm-bindgen,MIT OR Apache-2.0,The wasm-bindgen Developers @@ -175,5 +189,13 @@ windows_i686_msvc,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Micr windows_x86_64_gnu,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft windows_x86_64_gnullvm,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft windows_x86_64_msvc,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft +write16,https://github.com/hsivonen/write16,Apache-2.0 OR MIT,The write16 Authors +writeable,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +yoke,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +yoke-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar zerocopy,https://github.com/google/zerocopy,BSD-2-Clause OR Apache-2.0 OR MIT,Joshua Liebow-Feeser +zerofrom,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +zerofrom-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar zeroize,https://github.com/RustCrypto/utils/tree/master/zeroize,Apache-2.0 OR MIT,The RustCrypto Project Developers +zerovec,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +zerovec-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar