From 59a60234602266d58ee9562509e328d27184b3bb Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Wed, 27 Aug 2025 14:46:10 -0400 Subject: [PATCH 01/19] upgrade warp --- quickwit/Cargo.lock | 94 ++++--------------- quickwit/Cargo.toml | 7 +- quickwit/quickwit-config/Cargo.toml | 2 +- .../quickwit-config/src/node_config/mod.rs | 2 +- .../src/node_config/serialize.rs | 2 +- quickwit/quickwit-serve/Cargo.toml | 3 +- .../src/elasticsearch_api/filter.rs | 26 +++-- .../src/elasticsearch_api/model/error.rs | 12 +-- quickwit/quickwit-serve/src/format.rs | 2 +- .../src/index_api/index_resource.rs | 8 +- .../src/index_api/source_resource.rs | 2 +- .../src/index_api/split_resource.rs | 2 +- .../src/ingest_api/rest_handler.rs | 4 +- .../src/jaeger_api/rest_handler.rs | 2 +- quickwit/quickwit-serve/src/lib.rs | 5 - quickwit/quickwit-serve/src/rest.rs | 48 ++++++---- .../quickwit-serve/src/rest_api_response.rs | 4 +- .../src/search_api/rest_handler.rs | 4 +- quickwit/quickwit-serve/src/ui_handler.rs | 2 +- 19 files changed, 87 insertions(+), 144 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index b732a7ae330..54afca4f34f 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -3591,14 +3591,14 @@ dependencies = [ [[package]] name = "headers" -version = "0.3.9" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", "headers-core", - "http 0.2.12", + "http 1.3.1", "httpdate", "mime", "sha1", @@ -3606,11 +3606,11 @@ dependencies = [ [[package]] name = "headers-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 0.2.12", + "http 1.3.1", ] [[package]] @@ -3759,11 +3759,11 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "http-serde" -version = "1.1.3" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee" +checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" dependencies = [ - "http 0.2.12", + "http 1.3.1", "serde", ] @@ -5034,24 +5034,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http 0.2.12", - "httparse", - "log", - "memchr", - "mime", - "spin 0.9.8", - "version_check", -] - [[package]] name = "multimap" version = "0.10.1" @@ -6901,7 +6883,7 @@ dependencies = [ "chrono", "cron", "enum-iterator", - "http 0.2.12", + "http 1.3.1", "http-serde", "humantime", "itertools 0.14.0", @@ -7467,6 +7449,7 @@ dependencies = [ "glob", "hex", "http 1.3.1", + "http-body-util", "http-serde", "humantime", "hyper 1.7.0", @@ -8780,12 +8763,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" dependencies = [ - "futures", "percent-encoding", "serde", "thiserror 1.0.69", - "tracing", - "warp", ] [[package]] @@ -10061,18 +10041,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - [[package]] name = "tokio-util" version = "0.7.16" @@ -10469,25 +10437,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.8.5", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - [[package]] name = "typenum" version = "1.18.0" @@ -10659,12 +10608,6 @@ dependencies = [ "winapi 0.2.8", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8-ranges" version = "1.0.5" @@ -10910,20 +10853,22 @@ dependencies = [ [[package]] name = "warp" -version = "0.3.7" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +checksum = "51d06d9202adc1f15d709c4f4a2069be5428aa912cc025d6f268ac441ab066b0" dependencies = [ "bytes", "futures-channel", "futures-util", "headers", - "http 0.2.12", - "hyper 0.14.32", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-util", "log", "mime", "mime_guess", - "multer", "percent-encoding", "pin-project", "scoped-tls", @@ -10931,7 +10876,6 @@ dependencies = [ "serde_json", "serde_urlencoded", "tokio", - "tokio-tungstenite", "tokio-util", "tower-service", "tracing", diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index a68147f782a..e75bf1f97f4 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -123,7 +123,7 @@ home = "0.5" hostname = "0.3" http = "1.3" http-body-util = "0.1.3" -http-serde = "1.1" +http-serde = "2.1" humantime = "2.2" hyper = { version = "1.6", features = ["client", "http1", "http2", "server"] } hyper-rustls = "0.27" @@ -132,7 +132,6 @@ indexmap = { version = "2.9", features = ["serde"] } indicatif = "0.17" itertools = "0.14" json_comments = "0.2" -legacy-http = { version = "0.2", package = "http" } libz-sys = "1.1" lindera-core = "0.27" lindera-dictionary = "0.27" @@ -215,7 +214,7 @@ sea-query-binder = { version = "0.5", features = [ serde = { version = "1.0.219", features = ["derive", "rc"] } serde_json = "1.0" serde_json_borrow = "0.5" -serde_qs = { version = "0.12", features = ["warp"] } +serde_qs = { version = "0.12" } serde_with = "3.12" serde_yaml = "0.9" serial_test = { version = "3.2", features = ["file_locks"] } @@ -285,7 +284,7 @@ vrl = { version = "0.22", default-features = false, features = [ "stdlib", "value", ] } -warp = "0.3" +warp = { version = "0.4", features = ["server", "test"] } whichlang = "0.1" wiremock = "0.6" zstd = "0.13" diff --git a/quickwit/quickwit-config/Cargo.toml b/quickwit/quickwit-config/Cargo.toml index df52a40ced7..7cf75818444 100644 --- a/quickwit/quickwit-config/Cargo.toml +++ b/quickwit/quickwit-config/Cargo.toml @@ -17,11 +17,11 @@ bytesize = { workspace = true } chrono = { workspace = true } cron = { workspace = true } enum-iterator = { workspace = true } +http = { workspace = true } http-serde = { workspace = true } humantime = { workspace = true } itertools = { workspace = true } json_comments = { workspace = true } -legacy-http = { workspace = true } new_string_template = { workspace = true } once_cell = { workspace = true } regex = { workspace = true } diff --git a/quickwit/quickwit-config/src/node_config/mod.rs b/quickwit/quickwit-config/src/node_config/mod.rs index 5b5176fda7f..bb8a17daaeb 100644 --- a/quickwit/quickwit-config/src/node_config/mod.rs +++ b/quickwit/quickwit-config/src/node_config/mod.rs @@ -23,7 +23,7 @@ use std::time::Duration; use anyhow::{bail, ensure}; use bytesize::ByteSize; -use legacy_http::HeaderMap; +use http::HeaderMap; use quickwit_common::net::HostAddr; use quickwit_common::shared_consts::{ DEFAULT_SHARD_BURST_LIMIT, DEFAULT_SHARD_SCALE_UP_FACTOR, DEFAULT_SHARD_THROUGHPUT_LIMIT, diff --git a/quickwit/quickwit-config/src/node_config/serialize.rs b/quickwit/quickwit-config/src/node_config/serialize.rs index ab8ae75243d..b5f39ceb0ac 100644 --- a/quickwit/quickwit-config/src/node_config/serialize.rs +++ b/quickwit/quickwit-config/src/node_config/serialize.rs @@ -19,7 +19,7 @@ use std::time::Duration; use anyhow::{Context, bail}; use bytesize::ByteSize; -use legacy_http::HeaderMap; +use http::HeaderMap; use quickwit_common::fs::get_disk_size; use quickwit_common::net::{Host, find_private_ip, get_short_hostname}; use quickwit_common::new_coolid; diff --git a/quickwit/quickwit-serve/Cargo.toml b/quickwit/quickwit-serve/Cargo.toml index 0d31bfd3db1..18ae6b026d6 100644 --- a/quickwit/quickwit-serve/Cargo.toml +++ b/quickwit/quickwit-serve/Cargo.toml @@ -23,6 +23,7 @@ futures-util = { workspace = true } glob = { workspace = true } hex = { workspace = true } http = { workspace = true } +http-body-util = { workspace = true } http-serde = { workspace = true } humantime = { workspace = true } hyper = { workspace = true } @@ -55,7 +56,7 @@ tower = { workspace = true, features = ["limit"] } tower-http = { workspace = true } tracing = { workspace = true } utoipa = { workspace = true } -warp = { workspace = true } +warp = { workspace = true, features = ["server"] } zstd = { workspace = true } quickwit-actors = { workspace = true } diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/filter.rs b/quickwit/quickwit-serve/src/elasticsearch_api/filter.rs index 3104ded1b68..b8d2343f666 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/filter.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/filter.rs @@ -50,7 +50,7 @@ pub(crate) fn elasticsearch_filter() -> impl Filter + Clone { warp::path!("_elastic" / "_search") .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } #[utoipa::path( @@ -74,7 +74,7 @@ pub(crate) fn elastic_bulk_filter( content_length_limit.as_u64(), )) .and(get_body_bytes()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } #[utoipa::path( @@ -98,9 +98,7 @@ pub(crate) fn elastic_index_bulk_filter( content_length_limit.as_u64(), )) .and(get_body_bytes()) - .and(serde_qs::warp::query::( - serde_qs::Config::default(), - )) + .and(warp::query::()) } /// Like the warp json filter, but accepts an empty body and interprets it as `T::default`. @@ -138,7 +136,7 @@ pub(crate) fn elastic_index_field_capabilities_filter() -> impl Filter< warp::path!("_elastic" / String / "_field_caps") .and_then(extract_index_id_patterns) .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(json_or_empty()) } @@ -154,7 +152,7 @@ pub(crate) fn elastic_field_capabilities_filter() -> impl Filter< warp::path!("_elastic" / "_field_caps") .and_then(extract_index_id_patterns_default) .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(json_or_empty()) } @@ -173,7 +171,7 @@ pub(crate) fn elastic_index_count_filter() warp::path!("_elastic" / String / "_count") .and_then(extract_index_id_patterns) .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(json_or_empty()) } @@ -183,7 +181,7 @@ pub(crate) fn elastic_delete_index_filter() warp::path!("_elastic" / String) .and(warp::delete()) .and_then(extract_index_id_patterns) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } // No support for any query parameters for now. @@ -212,7 +210,7 @@ pub(crate) fn elastic_index_cat_indices_filter() warp::path!("_elastic" / "_cat" / "indices" / String) .and_then(extract_index_id_patterns) .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } #[utoipa::path(get, tag = "Search", path = "/_cat/indices")] @@ -220,7 +218,7 @@ pub(crate) fn elastic_cat_indices_filter() -> impl Filter + Clone { warp::path!("_elastic" / "_cat" / "indices") .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } #[utoipa::path(get, tag = "Search", path = "/{index}/_search")] @@ -229,7 +227,7 @@ pub(crate) fn elastic_index_search_filter() warp::path!("_elastic" / String / "_search") .and_then(extract_index_id_patterns) .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(json_or_empty()) } @@ -240,7 +238,7 @@ pub(crate) fn elastic_multi_search_filter() .and(warp::body::content_length_limit(BODY_LENGTH_LIMIT.as_u64())) .and(warp::body::bytes()) .and(warp::post()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } fn merge_scroll_body_params( @@ -259,7 +257,7 @@ pub(crate) fn elastic_scroll_filter() warp::path!("_elastic" / "_search" / "scroll") .and(warp::body::content_length_limit(BODY_LENGTH_LIMIT.as_u64())) .and(warp::get().or(warp::post()).unify()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(json_or_empty()) .map( |scroll_query_params: ScrollQueryParams, scroll_body: ScrollQueryParams| { diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs b/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs index 713a3d8e5ce..58543a61ca0 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs @@ -22,8 +22,6 @@ use quickwit_search::SearchError; use serde::{Deserialize, Serialize}; use warp::hyper::StatusCode; -use crate::convert_status_code_to_legacy_http; - #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ElasticsearchError { #[serde(with = "http_serde::status_code")] @@ -71,7 +69,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: crate::convert_status_code_to_legacy_http(status), + status: status, error: reason, } } @@ -79,9 +77,7 @@ impl From for ElasticsearchError { impl From for ElasticsearchError { fn from(ingest_service_error: IngestServiceError) -> Self { - let status = crate::convert_status_code_to_legacy_http( - ingest_service_error.error_code().http_status_code(), - ); + let status = ingest_service_error.error_code().http_status_code(); let reason = ErrorCause { reason: Some(ingest_service_error.to_string()), @@ -113,7 +109,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: crate::convert_status_code_to_legacy_http(status), + status: status, error: reason, } } @@ -133,7 +129,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: convert_status_code_to_legacy_http(status), + status: status, error: reason, } } diff --git a/quickwit/quickwit-serve/src/format.rs b/quickwit/quickwit-serve/src/format.rs index 7b53f92f9c8..e800de2e925 100644 --- a/quickwit/quickwit-serve/src/format.rs +++ b/quickwit/quickwit-serve/src/format.rs @@ -80,7 +80,7 @@ struct FormatQueryString { pub(crate) fn extract_format_from_qs() -> impl Filter + Clone { - serde_qs::warp::query::(serde_qs::Config::default()) + warp::query::() .map(|format_qs: FormatQueryString| format_qs.format) } diff --git a/quickwit/quickwit-serve/src/index_api/index_resource.rs b/quickwit/quickwit-serve/src/index_api/index_resource.rs index 29634af7881..cd0a5c0e4f6 100644 --- a/quickwit/quickwit-serve/src/index_api/index_resource.rs +++ b/quickwit/quickwit-serve/src/index_api/index_resource.rs @@ -81,7 +81,7 @@ pub fn list_indexes_metadata_handler( ) -> impl Filter + Clone { warp::path!("indexes") .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(with_arg(metastore)) .then(list_indexes_metadata) .and(extract_format_from_qs()) @@ -238,7 +238,7 @@ pub fn create_index_handler( ) -> impl Filter + Clone { warp::path!("indexes") .and(warp::post()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(extract_config_format()) .and(warp::body::content_length_limit(1024 * 1024)) .and(warp::filters::body::bytes()) @@ -294,7 +294,7 @@ pub struct UpdateQueryParams { } fn update_index_qp() -> impl Filter + Clone { - serde_qs::warp::query::(serde_qs::Config::default()) + warp::query::() } pub fn update_index_handler( @@ -449,7 +449,7 @@ pub fn delete_index_handler( ) -> impl Filter + Clone { warp::path!("indexes" / String) .and(warp::delete()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(with_arg(index_service)) .then(delete_index) .and(extract_format_from_qs()) diff --git a/quickwit/quickwit-serve/src/index_api/source_resource.rs b/quickwit/quickwit-serve/src/index_api/source_resource.rs index 39eb09b8894..66f3069b228 100644 --- a/quickwit/quickwit-serve/src/index_api/source_resource.rs +++ b/quickwit/quickwit-serve/src/index_api/source_resource.rs @@ -111,7 +111,7 @@ pub struct UpdateQueryParams { } fn update_source_qp() -> impl Filter + Clone { - serde_qs::warp::query::(serde_qs::Config::default()) + warp::query::() } pub fn update_source_handler( diff --git a/quickwit/quickwit-serve/src/index_api/split_resource.rs b/quickwit/quickwit-serve/src/index_api/split_resource.rs index a439328ffa1..a062186e551 100644 --- a/quickwit/quickwit-serve/src/index_api/split_resource.rs +++ b/quickwit/quickwit-serve/src/index_api/split_resource.rs @@ -141,7 +141,7 @@ pub fn list_splits_handler( ) -> impl Filter + Clone { warp::path!("indexes" / String / "splits") .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(with_arg(metastore)) .then(list_splits) .and(extract_format_from_qs()) diff --git a/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs b/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs index a12d154c63c..9040c8fd700 100644 --- a/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs @@ -98,9 +98,7 @@ fn ingest_filter( config.content_length_limit.as_u64(), )) .and(get_body_bytes()) - .and(serde_qs::warp::query::( - serde_qs::Config::default(), - )) + .and(warp::query::()) } fn ingest_handler( diff --git a/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs b/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs index 45d3d5d42f6..def8a4c6ca7 100644 --- a/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs @@ -139,7 +139,7 @@ pub fn jaeger_traces_search_handler( ) -> impl Filter + Clone { jaeger_api_path_filter() .and(warp::path!("traces")) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) .and(require(jaeger_service_opt)) .then(jaeger_traces_search) .map(|result| make_jaeger_api_response(result, BodyFormat::default())) diff --git a/quickwit/quickwit-serve/src/lib.rs b/quickwit/quickwit-serve/src/lib.rs index 91afc4a4dd7..44c0f648b5a 100644 --- a/quickwit/quickwit-serve/src/lib.rs +++ b/quickwit/quickwit-serve/src/lib.rs @@ -257,11 +257,6 @@ async fn balance_channel_for_service( BalanceChannel::from_stream(service_change_stream) } -fn convert_status_code_to_legacy_http(status_code: http::StatusCode) -> warp::http::StatusCode { - warp::http::StatusCode::from_u16(status_code.as_u16()) - .unwrap_or(warp::http::StatusCode::INTERNAL_SERVER_ERROR) -} - async fn start_ingest_client_if_needed( node_config: &NodeConfig, universe: &Universe, diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 01f5207e544..c9757a545f0 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -16,6 +16,7 @@ use std::fmt::Formatter; use std::pin::Pin; use std::sync::Arc; +use hyper_util::rt::{TokioExecutor, TokioIo}; use quickwit_common::tower::BoxFutureInfaillible; use quickwit_config::{disable_ingest_v1, enable_ingest_v2}; use quickwit_search::SearchService; @@ -30,6 +31,7 @@ use warp::filters::log::Info; use warp::hyper::http::HeaderValue; use warp::hyper::server::accept::Accept; use warp::hyper::server::conn::AddrIncoming; +use hyper::{body, server::conn::auto, service}; use warp::hyper::{Method, StatusCode, http}; use warp::{Filter, Rejection, Reply, redirect}; @@ -219,15 +221,27 @@ pub(crate) async fn start_rest_server( "starting REST server listening on {rest_listen_addr}" ); - let incoming = AddrIncoming::from_listener(tcp_listener)?; + let listener = TcpListener::bind(rest_listen_addr).await?; - let maybe_tls_incoming = - if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { - let rustls_config = tls::make_rustls_config(tls_config)?; - EitherIncoming::Left(tls::TlsAcceptor::new(rustls_config, incoming)) - } else { - EitherIncoming::Right(incoming) - }; + loop { + let (stream, _) = listener.accept().await?; + let io = TokioIo::new(stream); + tokio::task::spawn(async move { + if let Err(e) = auto::serve_connection(io, service).await { + error!("Error serving connection: {:?}", e); + } + }); + } + + // let incoming = AddrIncoming::from_listener(tcp_listener)?; + + // let maybe_tls_incoming = + // if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { + // let rustls_config = tls::make_rustls_config(tls_config)?; + // EitherIncoming::Left(tls::TlsAcceptor::new(rustls_config, incoming)) + // } else { + // EitherIncoming::Right(incoming) + // }; // `graceful_shutdown()` seems to be blocking in presence of existing connections. // The following approach of dropping the serve supposedly is not bullet proof, but it seems to @@ -236,16 +250,16 @@ pub(crate) async fn start_rest_server( // See more of the discussion here: // https://github.com/hyperium/hyper/issues/2386 - let serve_fut = async move { - tokio::select! { - res = warp::hyper::Server::builder(maybe_tls_incoming).serve(Shared::new(service)) => { res } - _ = shutdown_signal => { Ok(()) } - } - }; + // let serve_fut = async move { + // tokio::select! { + // res = warp::hyper::Server::builder(maybe_tls_incoming).serve(Shared::new(service)) => { res } + // _ = shutdown_signal => { Ok(()) } + // } + // }; - let (serve_res, _trigger_res) = tokio::join!(serve_fut, readiness_trigger); - serve_res?; - Ok(()) + // let (serve_res, _trigger_res) = tokio::join!(serve_fut, readiness_trigger); + // serve_res?; + // Ok(()) } fn search_routes( diff --git a/quickwit/quickwit-serve/src/rest_api_response.rs b/quickwit/quickwit-serve/src/rest_api_response.rs index 3efd8158971..0bf56f831f0 100644 --- a/quickwit/quickwit-serve/src/rest_api_response.rs +++ b/quickwit/quickwit-serve/src/rest_api_response.rs @@ -40,9 +40,7 @@ pub(crate) fn into_rest_api_response( body_format: BodyFormat, ) -> RestApiResponse { let rest_api_result = result.map_err(|error| RestApiError { - status_code: crate::convert_status_code_to_legacy_http( - error.error_code().http_status_code(), - ), + status_code: error.error_code().http_status_code(), message: error.to_string(), }); let status_code = match &rest_api_result { diff --git a/quickwit/quickwit-serve/src/search_api/rest_handler.rs b/quickwit/quickwit-serve/src/search_api/rest_handler.rs index 557942ff668..c2e7ecf0a75 100644 --- a/quickwit/quickwit-serve/src/search_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/search_api/rest_handler.rs @@ -298,7 +298,7 @@ fn search_get_filter() warp::path!(String / "search") .and_then(extract_index_id_patterns) .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } fn search_post_filter() @@ -315,7 +315,7 @@ fn search_plan_get_filter() warp::path!(String / "search-plan") .and_then(extract_index_id_patterns) .and(warp::get()) - .and(serde_qs::warp::query(serde_qs::Config::default())) + .and(warp::query()) } fn search_plan_post_filter() diff --git a/quickwit/quickwit-serve/src/ui_handler.rs b/quickwit/quickwit-serve/src/ui_handler.rs index 76743a73047..c6f748d9da7 100644 --- a/quickwit/quickwit-serve/src/ui_handler.rs +++ b/quickwit/quickwit-serve/src/ui_handler.rs @@ -60,7 +60,7 @@ async fn serve_impl(path: &str) -> Result, Rejection> { let asset = Asset::get(path_to_file).ok_or_else(warp::reject::not_found)?; let mime = mime_guess::from_path(path_to_file).first_or_octet_stream(); - let mut res = Response::new(asset.data.into()); + let mut res = Response::new(asset.data.into_owned().into()); res.headers_mut().insert( "content-type", HeaderValue::from_str(mime.as_ref()).unwrap(), From 0783963c0012283a6d3a75c24cc5065b2e3d528a Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Thu, 28 Aug 2025 13:52:37 -0400 Subject: [PATCH 02/19] updates --- quickwit/Cargo.lock | 81 ++++++++---------- quickwit/Cargo.toml | 20 ++--- quickwit/quickwit-serve/src/rest.rs | 126 +++++++++++++++------------- 3 files changed, 113 insertions(+), 114 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 54afca4f34f..ea3c2a717d4 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -499,7 +499,7 @@ dependencies = [ "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", - "aws-smithy-http 0.62.3", + "aws-smithy-http", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -539,9 +539,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.62.0" +version = "1.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d3a2854c7490b4c63d2b0e8c3976d628c80afa3045d078a715b2edb2ee4e0a" +checksum = "af040a86ae4378b7ed2f62c83b36be1848709bbbf5757ec850d0e08596a26be9" dependencies = [ "aws-credential-types", "aws-runtime", @@ -549,8 +549,8 @@ dependencies = [ "aws-smithy-async", "aws-smithy-checksums", "aws-smithy-eventstream", - "aws-smithy-http 0.60.12", - "aws-smithy-json 0.60.7", + "aws-smithy-http", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -561,9 +561,9 @@ dependencies = [ "hex", "hmac", "http 0.2.12", + "http 1.3.1", "http-body 0.4.6", "lru 0.12.5", - "once_cell", "percent-encoding", "regex-lite", "sha2", @@ -668,7 +668,7 @@ checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", - "aws-smithy-http 0.62.3", + "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", @@ -701,15 +701,14 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.60.13" +version = "0.63.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1a71073fca26775c8b5189175ea8863afb1c9ea2cceb02a5de5ad9dfbaa795" +checksum = "4dbef71cd3cf607deb5c407df52f7e589e6849b296874ee448977efbb6d0832b" dependencies = [ - "aws-smithy-http 0.60.12", + "aws-smithy-http", "aws-smithy-types", "bytes", - "crc32c", - "crc32fast", + "crc-fast", "hex", "http 0.2.12", "http-body 0.4.6", @@ -731,27 +730,6 @@ dependencies = [ "crc32fast", ] -[[package]] -name = "aws-smithy-http" -version = "0.60.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" -dependencies = [ - "aws-smithy-eventstream", - "aws-smithy-runtime-api", - "aws-smithy-types", - "bytes", - "bytes-utils", - "futures-core", - "http 0.2.12", - "http-body 0.4.6", - "once_cell", - "percent-encoding", - "pin-project-lite", - "pin-utils", - "tracing", -] - [[package]] name = "aws-smithy-http" version = "0.62.3" @@ -872,7 +850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", - "aws-smithy-http 0.62.3", + "aws-smithy-http", "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", @@ -2106,12 +2084,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "crc32c" -version = "0.6.8" +name = "crc-fast" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +checksum = "6bf62af4cc77d8fe1c22dde4e721d87f2f54056139d8c412e1366b740305f56f" dependencies = [ - "rustc_version", + "crc", + "digest", + "libc", + "rand 0.9.2", + "regex", ] [[package]] @@ -7484,8 +7466,8 @@ dependencies = [ "quickwit-telemetry", "regex", "rust-embed", - "rustls 0.21.12", - "rustls-pemfile", + "rustls 0.23.31", + "rustls-pemfile 2.2.0", "serde", "serde_json", "serde_qs 0.12.0", @@ -7494,7 +7476,7 @@ dependencies = [ "thiserror 2.0.16", "time", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls 0.26.2", "tokio-stream", "tokio-util", "tonic 0.13.1", @@ -7968,7 +7950,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls 0.21.12", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", @@ -8349,7 +8331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "schannel", "security-framework 2.11.1", ] @@ -8375,6 +8357,15 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -9185,7 +9176,7 @@ dependencies = [ "paste", "percent-encoding", "rustls 0.21.12", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "serde", "serde_json", "sha2", @@ -10125,7 +10116,7 @@ dependencies = [ "percent-encoding", "pin-project", "prost 0.11.9", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "tokio", "tokio-rustls 0.24.1", "tokio-stream", diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index e75bf1f97f4..d4fc3424fb4 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -125,7 +125,7 @@ http = "1.3" http-body-util = "0.1.3" http-serde = "2.1" humantime = "2.2" -hyper = { version = "1.6", features = ["client", "http1", "http2", "server"] } +hyper = { version = "1.7", features = ["client", "http1", "http2", "server"] } hyper-rustls = "0.27" hyper-util = { version = "0.1", features = ["full"] } indexmap = { version = "2.9", features = ["serde"] } @@ -203,8 +203,8 @@ reqwest-middleware = "0.4" reqwest-retry = "0.7" rust-embed = "6.8" rustc-hash = "2.1" -rustls = "0.21" -rustls-pemfile = "1.0" +rustls = "0.23" +rustls-pemfile = "2.2" sea-query = { version = "0.30" } sea-query-binder = { version = "0.5", features = [ "runtime-tokio-rustls", @@ -238,7 +238,7 @@ tikv-jemallocator = "0.5" time = { version = "0.3", features = ["std", "formatting", "macros"] } tokio = { version = "1.45", features = ["full"] } tokio-metrics = { version = "0.3", features = ["rt"] } -tokio-rustls = { version = "0.24", default-features = false } +tokio-rustls = { version = "0.26", default-features = false } tokio-stream = { version = "0.1", features = ["sync"] } tokio-util = { version = "0.7", features = ["full"] } toml = "0.7" @@ -289,15 +289,15 @@ whichlang = "0.1" wiremock = "0.6" zstd = "0.13" -aws-config = "1.6" +aws-config = "1.8" aws-credential-types = { version = "1.2", features = ["hardcoded-credentials"] } aws-runtime = "1.5" -aws-sdk-kinesis = "1.74" -aws-sdk-s3 = "=1.62" -aws-sdk-sqs = "1.70" +aws-sdk-kinesis = "1.86" +aws-sdk-s3 = "=1.103" +aws-sdk-sqs = "1.82" aws-smithy-async = "1.2" -aws-smithy-http-client = { version = "1.0" } -aws-smithy-runtime = "1.8" +aws-smithy-http-client = { version = "1.1", features = ["default-client"] } +aws-smithy-runtime = "1.9" aws-smithy-types = { version = "1.3", features = [ "byte-stream-poll-next", "http-body-1-x", diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index c9757a545f0..714242aed88 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -29,11 +29,11 @@ use tower_http::cors::CorsLayer; use tracing::{error, info}; use warp::filters::log::Info; use warp::hyper::http::HeaderValue; -use warp::hyper::server::accept::Accept; -use warp::hyper::server::conn::AddrIncoming; -use hyper::{body, server::conn::auto, service}; +use hyper::{body, service}; use warp::hyper::{Method, StatusCode, http}; use warp::{Filter, Rejection, Reply, redirect}; +use tokio_rustls::TlsAcceptor; +use hyper_util::server::conn::auto; use crate::cluster_api::cluster_handler; use crate::decompression::{CorruptedData, UnsupportedEncoding}; @@ -223,15 +223,34 @@ pub(crate) async fn start_rest_server( let listener = TcpListener::bind(rest_listen_addr).await?; - loop { - let (stream, _) = listener.accept().await?; - let io = TokioIo::new(stream); - tokio::task::spawn(async move { - if let Err(e) = auto::serve_connection(io, service).await { - error!("Error serving connection: {:?}", e); - } - }); - } + if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { + let rustls_config = tls::make_rustls_config(tls_config)?; + let acceptor = TlsAcceptor::from(rustls_config); + + loop { + let stream = listener.accept().await?.0; + let stream = acceptor.accept(stream).await?; + let io = TokioIo::new(stream); + tokio::task::spawn(async move { + let connection = auto::Builder::new(TokioExecutor::new()).serve_connection(io, service); + if let Err(e) = connection.await { + error!("Error serving connection: {:?}", e); + } + }); + } + } else { + loop { + let (stream, _) = listener.accept().await?; + let io = TokioIo::new(stream); + tokio::task::spawn(async move { + if let Err(e) = auto::Builder::new(TokioExecutor::new()).serve_connection(io, service.clone()).await { + error!("Error serving connection: {:?}", e); + } + }); + } + }; + + // let incoming = AddrIncoming::from_listener(tcp_listener)?; @@ -504,72 +523,61 @@ mod tls { use quickwit_config::TlsConfig; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::rustls::ServerConfig; - use warp::hyper::server::accept::Accept; - use warp::hyper::server::conn::{AddrIncoming, AddrStream}; + use rustls::pki_types::{CertificateDer, PrivateKeyDer}; fn io_error(error: String) -> io::Error { io::Error::other(error) } // Load public certificate from file. - fn load_certs(filename: &str) -> io::Result> { + fn load_certs(filename: &str) -> io::Result>> { // Open certificate file. - let certfile = fs::read(filename) + let certfile = fs::File::open(filename) .map_err(|error| io_error(format!("failed to open {filename}: {error}")))?; - + let mut reader = io::BufReader::new(certfile); + // Load and return certificate. - let certs = rustls_pemfile::certs(&mut certfile.as_ref()) - .map_err(|_| io_error("failed to load certificate".to_string()))?; - Ok(certs.into_iter().map(rustls::Certificate).collect()) + rustls_pemfile::certs(&mut reader).collect() } // Load private key from file. - fn load_private_key(filename: &str) -> io::Result { + fn load_private_key(filename: &str) -> io::Result> { // Open keyfile. - let keyfile = fs::read(filename) + let keyfile = fs::File::open(filename) .map_err(|error| io_error(format!("failed to open {filename}: {error}")))?; + let mut reader = io::BufReader::new(keyfile); // Load and return a single private key. - let keys = rustls_pemfile::pkcs8_private_keys(&mut keyfile.as_ref()) - .map_err(|_| io_error("failed to load private key".to_string()))?; - - if keys.len() != 1 { - return Err(io_error(format!( - "expected a single private key, got {}", - keys.len() - ))); - } - - Ok(rustls::PrivateKey(keys[0].clone())) + rustls_pemfile::private_key(&mut reader).map(|key| key.unwrap) } - pub struct TlsAcceptor { - config: Arc, - incoming: AddrIncoming, - } + // pub struct TlsAcceptor { + // config: Arc, + // incoming: AddrIncoming, + // } - impl TlsAcceptor { - pub fn new(config: Arc, incoming: AddrIncoming) -> TlsAcceptor { - TlsAcceptor { config, incoming } - } - } - - impl Accept for TlsAcceptor { - type Conn = TlsStream; - type Error = io::Error; - - fn poll_accept( - self: Pin<&mut Self>, - cx: &mut Context<'_>, - ) -> Poll>> { - let pin = self.get_mut(); - match ready!(Pin::new(&mut pin.incoming).poll_accept(cx)) { - Some(Ok(sock)) => Poll::Ready(Some(Ok(TlsStream::new(sock, pin.config.clone())))), - Some(Err(e)) => Poll::Ready(Some(Err(e))), - None => Poll::Ready(None), - } - } - } + // impl TlsAcceptor { + // pub fn new(config: Arc, incoming: AddrIncoming) -> TlsAcceptor { + // TlsAcceptor { config, incoming } + // } + // } + + // impl Accept for TlsAcceptor { + // type Conn = TlsStream; + // type Error = io::Error; + + // fn poll_accept( + // self: Pin<&mut Self>, + // cx: &mut Context<'_>, + // ) -> Poll>> { + // let pin = self.get_mut(); + // match ready!(Pin::new(&mut pin.incoming).poll_accept(cx)) { + // Some(Ok(sock)) => Poll::Ready(Some(Ok(TlsStream::new(sock, pin.config.clone())))), + // Some(Err(e)) => Poll::Ready(Some(Err(e))), + // None => Poll::Ready(None), + // } + // } + // } enum State { Handshaking(tokio_rustls::Accept), From cc1c9fb89b3f0415689127a193e8d927a43bbce5 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 2 Sep 2025 17:37:37 -0400 Subject: [PATCH 03/19] warp upgrade refactor --- quickwit/Cargo.lock | 21 +- quickwit/Cargo.toml | 3 +- .../src/source/queue_sources/sqs_queue.rs | 16 +- quickwit/quickwit-lambda/Cargo.toml | 75 +++++ quickwit/quickwit-serve/Cargo.toml | 1 + .../src/developer_api/heap_prof.rs | 5 +- .../src/elasticsearch_api/model/error.rs | 6 +- quickwit/quickwit-serve/src/format.rs | 3 +- .../src/index_api/rest_handler.rs | 2 +- quickwit/quickwit-serve/src/lib.rs | 2 + quickwit/quickwit-serve/src/rest.rs | 284 ++++++------------ 11 files changed, 204 insertions(+), 214 deletions(-) create mode 100644 quickwit/quickwit-lambda/Cargo.toml diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index ea3c2a717d4..99d6bae2ca1 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -701,9 +701,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.7" +version = "0.63.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dbef71cd3cf607deb5c407df52f7e589e6849b296874ee448977efbb6d0832b" +checksum = "56d2df0314b8e307995a3b86d44565dfe9de41f876901a7d71886c756a25979f" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -3733,12 +3733,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - [[package]] name = "http-serde" version = "2.1.1" @@ -7431,6 +7425,7 @@ dependencies = [ "glob", "hex", "http 1.3.1", + "http-body 1.0.1", "http-body-util", "http-serde", "humantime", @@ -7483,7 +7478,7 @@ dependencies = [ "tonic-health", "tonic-reflection", "tower 0.5.2", - "tower-http 0.4.4", + "tower-http", "tracing", "utoipa", "warp", @@ -8002,7 +7997,7 @@ dependencies = [ "tokio-rustls 0.26.2", "tokio-util", "tower 0.5.2", - "tower-http 0.6.6", + "tower-http", "tower-service", "url", "wasm-bindgen", @@ -10270,9 +10265,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "bitflags 2.9.4", @@ -10302,6 +10297,8 @@ dependencies = [ "http-body 1.0.1", "iri-string", "pin-project-lite", + "tokio", + "tokio-util", "tower 0.5.2", "tower-layer", "tower-service", diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index d4fc3424fb4..3a6e8f5401b 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -122,6 +122,7 @@ hex = "0.4" home = "0.5" hostname = "0.3" http = "1.3" +http-body = "1.0" http-body-util = "0.1.3" http-serde = "2.1" humantime = "2.2" @@ -259,7 +260,7 @@ tower = { version = "0.5", features = [ "util", ] } # legacy version because of warp -tower-http = { version = "0.4", features = [ +tower-http = { version = "0.6", features = [ "compression-gzip", "compression-zstd", "cors", diff --git a/quickwit/quickwit-indexing/src/source/queue_sources/sqs_queue.rs b/quickwit/quickwit-indexing/src/source/queue_sources/sqs_queue.rs index 1e4c55142ac..d9159de1a35 100644 --- a/quickwit/quickwit-indexing/src/source/queue_sources/sqs_queue.rs +++ b/quickwit/quickwit-indexing/src/source/queue_sources/sqs_queue.rs @@ -318,21 +318,21 @@ pub mod test_helpers { /// /// Returns the queue URL to use for the source and a guard for the /// temporary mock server - pub fn start_mock_sqs_get_queue_attributes_endpoint() -> (String, oneshot::Sender<()>) { + pub async fn start_mock_sqs_get_queue_attributes_endpoint() -> (String, oneshot::Sender<()>) { let hello = warp::path!().map(|| "{}"); let (tx, rx) = oneshot::channel(); - let (addr, server) = - warp::serve(hello).bind_with_graceful_shutdown(([127, 0, 0, 1], 0), async { - rx.await.ok(); - }); - tokio::spawn(server); - let queue_url = format!("http://{}:{}/", addr.ip(), addr.port()); + let server = warp::serve(hello).bind(([127, 0, 0, 1], 0)).await; + let signal_future = async { + rx.await.ok(); + }; + server.graceful(signal_future); + let queue_url = "http://127.0.0.1:0/".to_string(); (queue_url, tx) } #[tokio::test] async fn test_mock_sqs_get_queue_attributes_endpoint() { - let (queue_url, _shutdown) = start_mock_sqs_get_queue_attributes_endpoint(); + let (queue_url, _shutdown) = start_mock_sqs_get_queue_attributes_endpoint().await; check_connectivity(&queue_url).await.unwrap(); drop(_shutdown); check_connectivity(&queue_url).await.unwrap_err(); diff --git a/quickwit/quickwit-lambda/Cargo.toml b/quickwit/quickwit-lambda/Cargo.toml new file mode 100644 index 00000000000..a360d72a7af --- /dev/null +++ b/quickwit/quickwit-lambda/Cargo.toml @@ -0,0 +1,75 @@ +[package] +name = "quickwit-lambda" +description = "Serverless Quickwit on AWS Lambda" + +version.workspace = true +edition.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +authors.workspace = true +license.workspace = true + +[[bin]] +name = "indexer" +path = "src/bin/indexer.rs" + +[[bin]] +name = "searcher" +path = "src/bin/searcher.rs" + +[features] +s3-localstack-tests = [] + +[dependencies] +anyhow = { workspace = true } +aws_lambda_events = "0.16" +bytesize = { workspace = true } +chitchat = { workspace = true } +chrono = { workspace = true } +flate2 = { workspace = true } +futures = { workspace = true } +http = { workspace = true } +http-body-util = { workspace = true } +hyper = { workspace = true } +lambda_http = "0.14" +lambda_runtime = "0.13" +mime_guess = { workspace = true } +once_cell = { workspace = true } +opentelemetry = { workspace = true } +opentelemetry_sdk = { workspace = true } +opentelemetry-otlp = { workspace = true, features = [ + "reqwest-client", + "reqwest-rustls", + "http-proto", +] } +rand = { workspace = true } +reqwest = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +time = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } +tracing-opentelemetry = { workspace = true } +tracing-subscriber = { workspace = true, features = ["json"] } +warp = { workspace = true, features = ["compression-gzip"] } + + +quickwit-actors = { workspace = true } +quickwit-cli = { workspace = true } +quickwit-cluster = { workspace = true } +quickwit-common = { workspace = true } +quickwit-config = { workspace = true } +quickwit-index-management = { workspace = true } +quickwit-indexing = { workspace = true } +quickwit-ingest = { workspace = true } +quickwit-janitor = { workspace = true } +quickwit-metastore = { workspace = true } +quickwit-proto = { workspace = true } +quickwit-search = { workspace = true } +quickwit-serve = { workspace = true } +quickwit-storage = { workspace = true } +quickwit-telemetry = { workspace = true } + +[dev-dependencies] +serial_test = { workspace = true } diff --git a/quickwit/quickwit-serve/Cargo.toml b/quickwit/quickwit-serve/Cargo.toml index 18ae6b026d6..99c8fe3922d 100644 --- a/quickwit/quickwit-serve/Cargo.toml +++ b/quickwit/quickwit-serve/Cargo.toml @@ -23,6 +23,7 @@ futures-util = { workspace = true } glob = { workspace = true } hex = { workspace = true } http = { workspace = true } +http-body = { workspace = true } http-body-util = { workspace = true } http-serde = { workspace = true } humantime = { workspace = true } diff --git a/quickwit/quickwit-serve/src/developer_api/heap_prof.rs b/quickwit/quickwit-serve/src/developer_api/heap_prof.rs index a1d3cd3d224..a6b833bc4ac 100644 --- a/quickwit/quickwit-serve/src/developer_api/heap_prof.rs +++ b/quickwit/quickwit-serve/src/developer_api/heap_prof.rs @@ -35,7 +35,7 @@ pub fn heap_prof_handlers() async fn start_profiler_handler( params: ProfilerQueryParams, - ) -> Result, warp::Rejection> { + ) -> Result { start_profiling(params.min_alloc_size, params.backtrace_every); let response = warp::reply::with_status("Heap profiling started", warp::http::StatusCode::OK) @@ -43,8 +43,7 @@ pub fn heap_prof_handlers() Ok(response) } - async fn stop_profiler_handler() - -> Result, warp::Rejection> { + async fn stop_profiler_handler() -> Result { stop_profiling(); let response = warp::reply::with_status("Heap profiling stopped", warp::http::StatusCode::OK) diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs b/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs index 58543a61ca0..c11807fb4fb 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/model/error.rs @@ -69,7 +69,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: status, + status, error: reason, } } @@ -109,7 +109,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: status, + status, error: reason, } } @@ -129,7 +129,7 @@ impl From for ElasticsearchError { additional_details: Default::default(), }; ElasticsearchError { - status: status, + status, error: reason, } } diff --git a/quickwit/quickwit-serve/src/format.rs b/quickwit/quickwit-serve/src/format.rs index e800de2e925..1f0d8fb19ec 100644 --- a/quickwit/quickwit-serve/src/format.rs +++ b/quickwit/quickwit-serve/src/format.rs @@ -80,8 +80,7 @@ struct FormatQueryString { pub(crate) fn extract_format_from_qs() -> impl Filter + Clone { - warp::query::() - .map(|format_qs: FormatQueryString| format_qs.format) + warp::query::().map(|format_qs: FormatQueryString| format_qs.format) } #[derive(Debug, Error)] diff --git a/quickwit/quickwit-serve/src/index_api/rest_handler.rs b/quickwit/quickwit-serve/src/index_api/rest_handler.rs index 1b6e3a7a649..bc4c8d9b105 100644 --- a/quickwit/quickwit-serve/src/index_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/index_api/rest_handler.rs @@ -1140,7 +1140,7 @@ mod tests { use quickwit_indexing::source::sqs_queue::test_helpers::start_mock_sqs_get_queue_attributes_endpoint; let metastore = metastore_for_test(); - let (queue_url, _guard) = start_mock_sqs_get_queue_attributes_endpoint(); + let (queue_url, _guard) = start_mock_sqs_get_queue_attributes_endpoint().await; let index_service = IndexService::new(metastore.clone(), StorageResolver::unconfigured()); let mut node_config = NodeConfig::for_test(); node_config.default_index_root_uri = Uri::for_test("file:///default-index-root-uri"); diff --git a/quickwit/quickwit-serve/src/lib.rs b/quickwit/quickwit-serve/src/lib.rs index 44c0f648b5a..5046a8a8b65 100644 --- a/quickwit/quickwit-serve/src/lib.rs +++ b/quickwit/quickwit-serve/src/lib.rs @@ -434,6 +434,8 @@ pub async fn serve_quickwit( shutdown_signal: BoxFutureInfaillible<()>, env_filter_reload_fn: EnvFilterReloadFn, ) -> anyhow::Result> { + let _ = rustls::crypto::ring::default_provider().install_default(); + let cluster = start_cluster_service(&node_config) .await .context("failed to start cluster service")?; diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 714242aed88..40f9e3720ab 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -13,27 +13,25 @@ // limitations under the License. use std::fmt::Formatter; -use std::pin::Pin; use std::sync::Arc; use hyper_util::rt::{TokioExecutor, TokioIo}; +use hyper_util::server::conn::auto; +use hyper_util::service::TowerToHyperService; use quickwit_common::tower::BoxFutureInfaillible; use quickwit_config::{disable_ingest_v1, enable_ingest_v2}; use quickwit_search::SearchService; use tokio::net::TcpListener; +use tokio_rustls::TlsAcceptor; use tower::ServiceBuilder; -use tower::make::Shared; use tower_http::compression::CompressionLayer; use tower_http::compression::predicate::{NotForContentType, Predicate, SizeAbove}; use tower_http::cors::CorsLayer; use tracing::{error, info}; use warp::filters::log::Info; use warp::hyper::http::HeaderValue; -use hyper::{body, service}; use warp::hyper::{Method, StatusCode, http}; use warp::{Filter, Rejection, Reply, redirect}; -use tokio_rustls::TlsAcceptor; -use hyper_util::server::conn::auto; use crate::cluster_api::cluster_handler; use crate::decompression::{CorruptedData, UnsupportedEncoding}; @@ -112,7 +110,7 @@ impl CompressionPredicate { impl Predicate for CompressionPredicate { fn should_compress(&self, response: &http::Response) -> bool - where B: warp::hyper::body::HttpBody { + where B: http_body::Body { if let Some(size_above) = self.size_above_opt { size_above.should_compress(response) } else { @@ -221,37 +219,65 @@ pub(crate) async fn start_rest_server( "starting REST server listening on {rest_listen_addr}" ); - let listener = TcpListener::bind(rest_listen_addr).await?; + let service = TowerToHyperService::new(service); + + // Signal readiness after server setup is complete + tokio::spawn(readiness_trigger); if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { let rustls_config = tls::make_rustls_config(tls_config)?; let acceptor = TlsAcceptor::from(rustls_config); - - loop { - let stream = listener.accept().await?.0; - let stream = acceptor.accept(stream).await?; - let io = TokioIo::new(stream); - tokio::task::spawn(async move { - let connection = auto::Builder::new(TokioExecutor::new()).serve_connection(io, service); - if let Err(e) = connection.await { - error!("Error serving connection: {:?}", e); + tokio::select! { + _ = async { + loop { + let stream = tcp_listener.accept().await?.0; + let stream = acceptor.accept(stream).await?; + let io = TokioIo::new(stream); + let service_clone = service.clone(); + tokio::task::spawn(async move { + if let Err(e) = auto::Builder::new(TokioExecutor::new()) + .serve_connection(io, service_clone) + .await + { + error!(err=?e, "Error serving connection"); + } + }); } - }); + #[allow(unreachable_code)] + Ok::<(), anyhow::Error>(()) + } => {}, + _ = shutdown_signal => { + info!("REST server shutdown signal received"); + } } } else { - loop { - let (stream, _) = listener.accept().await?; - let io = TokioIo::new(stream); - tokio::task::spawn(async move { - if let Err(e) = auto::Builder::new(TokioExecutor::new()).serve_connection(io, service.clone()).await { - error!("Error serving connection: {:?}", e); + tokio::select! { + _ = async { + loop { + let (stream, _) = tcp_listener.accept().await?; + let io = TokioIo::new(stream); + let service_clone = service.clone(); + tokio::task::spawn(async move { + if let Err(e) = auto::Builder::new(TokioExecutor::new()) + .serve_connection(io, service_clone) + .await + { + error!(err=?e, "Error serving connection"); + } + }); } - }); + #[allow(unreachable_code)] + Ok::<(), anyhow::Error>(()) + } => {}, + _ = shutdown_signal => { + info!("REST server shutdown signal received"); + } } - }; + } - + Ok(()) + // TODO: use EitherIncoming logic above // let incoming = AddrIncoming::from_listener(tcp_listener)?; // let maybe_tls_incoming = @@ -271,8 +297,8 @@ pub(crate) async fn start_rest_server( // let serve_fut = async move { // tokio::select! { - // res = warp::hyper::Server::builder(maybe_tls_incoming).serve(Shared::new(service)) => { res } - // _ = shutdown_signal => { Ok(()) } + // res = warp::hyper::Server::builder(maybe_tls_incoming).serve(Shared::new(service)) + // => { res } _ = shutdown_signal => { Ok(()) } // } // }; @@ -513,17 +539,13 @@ fn build_cors(cors_origins: &[String]) -> CorsLayer { mod tls { // most of this module is copied from hyper-tls examples, licensed under Apache 2.0, MIT or ISC - use std::future::Future; - use std::pin::Pin; use std::sync::Arc; - use std::task::{Context, Poll, ready}; use std::vec::Vec; use std::{fs, io}; use quickwit_config::TlsConfig; - use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; - use tokio_rustls::rustls::ServerConfig; use rustls::pki_types::{CertificateDer, PrivateKeyDer}; + use tokio_rustls::rustls::ServerConfig; fn io_error(error: String) -> io::Error { io::Error::other(error) @@ -535,7 +557,7 @@ mod tls { let certfile = fs::File::open(filename) .map_err(|error| io_error(format!("failed to open {filename}: {error}")))?; let mut reader = io::BufReader::new(certfile); - + // Load and return certificate. rustls_pemfile::certs(&mut reader).collect() } @@ -548,112 +570,7 @@ mod tls { let mut reader = io::BufReader::new(keyfile); // Load and return a single private key. - rustls_pemfile::private_key(&mut reader).map(|key| key.unwrap) - } - - // pub struct TlsAcceptor { - // config: Arc, - // incoming: AddrIncoming, - // } - - // impl TlsAcceptor { - // pub fn new(config: Arc, incoming: AddrIncoming) -> TlsAcceptor { - // TlsAcceptor { config, incoming } - // } - // } - - // impl Accept for TlsAcceptor { - // type Conn = TlsStream; - // type Error = io::Error; - - // fn poll_accept( - // self: Pin<&mut Self>, - // cx: &mut Context<'_>, - // ) -> Poll>> { - // let pin = self.get_mut(); - // match ready!(Pin::new(&mut pin.incoming).poll_accept(cx)) { - // Some(Ok(sock)) => Poll::Ready(Some(Ok(TlsStream::new(sock, pin.config.clone())))), - // Some(Err(e)) => Poll::Ready(Some(Err(e))), - // None => Poll::Ready(None), - // } - // } - // } - - enum State { - Handshaking(tokio_rustls::Accept), - Streaming(tokio_rustls::server::TlsStream), - } - - // tokio_rustls::server::TlsStream doesn't expose constructor methods, - // so we have to TlsAcceptor::accept and handshake to have access to it - // TlsStream implements AsyncRead/AsyncWrite handshaking tokio_rustls::Accept first - pub struct TlsStream { - state: State, - } - - impl TlsStream { - fn new(stream: AddrStream, config: Arc) -> TlsStream { - let accept = tokio_rustls::TlsAcceptor::from(config).accept(stream); - TlsStream { - state: State::Handshaking(accept), - } - } - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: Pin<&mut Self>, - cx: &mut Context, - buf: &mut ReadBuf, - ) -> Poll> { - let pin = self.get_mut(); - match pin.state { - State::Handshaking(ref mut accept) => match ready!(Pin::new(accept).poll(cx)) { - Ok(mut stream) => { - let result = Pin::new(&mut stream).poll_read(cx, buf); - pin.state = State::Streaming(stream); - result - } - Err(err) => Poll::Ready(Err(err)), - }, - State::Streaming(ref mut stream) => Pin::new(stream).poll_read(cx, buf), - } - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: Pin<&mut Self>, - cx: &mut Context<'_>, - buf: &[u8], - ) -> Poll> { - let pin = self.get_mut(); - match pin.state { - State::Handshaking(ref mut accept) => match ready!(Pin::new(accept).poll(cx)) { - Ok(mut stream) => { - let result = Pin::new(&mut stream).poll_write(cx, buf); - pin.state = State::Streaming(stream); - result - } - Err(err) => Poll::Ready(Err(err)), - }, - State::Streaming(ref mut stream) => Pin::new(stream).poll_write(cx, buf), - } - } - - fn poll_flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { - match self.state { - State::Handshaking(_) => Poll::Ready(Ok(())), - State::Streaming(ref mut stream) => Pin::new(stream).poll_flush(cx), - } - } - - fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { - match self.state { - State::Handshaking(_) => Poll::Ready(Ok(())), - State::Streaming(ref mut stream) => Pin::new(stream).poll_shutdown(cx), - } - } + rustls_pemfile::private_key(&mut reader).map(|key| key.unwrap()) } pub fn make_rustls_config(config: &TlsConfig) -> anyhow::Result> { @@ -667,7 +584,6 @@ mod tls { } let mut cfg = rustls::ServerConfig::builder() - .with_safe_defaults() .with_no_client_auth() .with_single_cert(certs, key) .map_err(|error| io_error(error.to_string()))?; @@ -677,49 +593,49 @@ mod tls { } } -enum EitherIncoming { - Left(L), - Right(R), -} - -impl EitherIncoming { - pub fn as_pin_mut(self: Pin<&mut Self>) -> EitherIncoming, Pin<&mut R>> { - // SAFETY: `get_unchecked_mut` is fine because we don't move anything. - // We can use `new_unchecked` because the `inner` parts are guaranteed - // to be pinned, as they come from `self` which is pinned, and we never - // offer an unpinned `&mut A` or `&mut B` through `Pin<&mut Self>`. We - // also don't have an implementation of `Drop`, nor manual `Unpin`. - unsafe { - match self.get_unchecked_mut() { - EitherIncoming::Left(inner) => EitherIncoming::Left(Pin::new_unchecked(inner)), - EitherIncoming::Right(inner) => EitherIncoming::Right(Pin::new_unchecked(inner)), - } - } - } -} - -impl Accept for EitherIncoming -where - L: Accept, - R: Accept, -{ - type Conn = tokio_util::either::Either; - type Error = E; - - fn poll_accept( - self: Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll>> { - match self.as_pin_mut() { - EitherIncoming::Left(l) => l - .poll_accept(cx) - .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Left))), - EitherIncoming::Right(r) => r - .poll_accept(cx) - .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Right))), - } - } -} +// enum EitherIncoming { +// Left(L), +// Right(R), +// } + +// impl EitherIncoming { +// pub fn as_pin_mut(self: Pin<&mut Self>) -> EitherIncoming, Pin<&mut R>> { +// // SAFETY: `get_unchecked_mut` is fine because we don't move anything. +// // We can use `new_unchecked` because the `inner` parts are guaranteed +// // to be pinned, as they come from `self` which is pinned, and we never +// // offer an unpinned `&mut A` or `&mut B` through `Pin<&mut Self>`. We +// // also don't have an implementation of `Drop`, nor manual `Unpin`. +// unsafe { +// match self.get_unchecked_mut() { +// EitherIncoming::Left(inner) => EitherIncoming::Left(Pin::new_unchecked(inner)), +// EitherIncoming::Right(inner) => EitherIncoming::Right(Pin::new_unchecked(inner)), +// } +// } +// } +// } + +// impl Accept for EitherIncoming +// where +// L: Accept, +// R: Accept, +// { +// type Conn = tokio_util::either::Either; +// type Error = E; + +// fn poll_accept( +// self: Pin<&mut Self>, +// cx: &mut std::task::Context<'_>, +// ) -> std::task::Poll>> { +// match self.as_pin_mut() { +// EitherIncoming::Left(l) => l +// .poll_accept(cx) +// .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Left))), +// EitherIncoming::Right(r) => r +// .poll_accept(cx) +// .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Right))), +// } +// } +// } #[cfg(test)] mod tests { From 067fe0cea6b7669df98a14818076d3f2df7a4a1b Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Wed, 3 Sep 2025 16:00:33 -0400 Subject: [PATCH 04/19] fixes --- LICENSE-3rdparty.csv | 9 +- quickwit/quickwit-serve/src/rest.rs | 24 ++-- .../src/search_api/rest_handler.rs | 107 +++++++++++++++++- 3 files changed, 124 insertions(+), 16 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 95fb38524ac..9897583da5b 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -105,7 +105,9 @@ constant_time_eq,https://github.com/cesarb/constant_time_eq,CC0-1.0,Cesar Eduard core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers core-foundation-sys,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers cpufeatures,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers -crc32c,https://github.com/zowens/crc32c,Apache-2.0 OR MIT,Zack Owens +crc,https://github.com/mrhooray/crc-rs,MIT OR Apache-2.0,"Rui Hu , Akhil Velagapudi <4@4khil.com>" +crc-catalog,https://github.com/akhilles/crc-catalog,MIT OR Apache-2.0,Akhil Velagapudi +crc-fast,https://github.com/awesomized/crc-fast-rust,MIT OR Apache-2.0,Don MacAskill crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " criterion-plot,https://github.com/bheisler/criterion.rs,MIT OR Apache-2.0,"Jorge Aparicio , Brook Heisler " cron,https://github.com/zslayton/cron,MIT OR Apache-2.0,Zack Slayton @@ -203,7 +205,6 @@ htmlescape,https://github.com/veddan/rust-htmlescape,Apache-2.0 OR MIT OR MP http,https://github.com/hyperium/http,MIT OR Apache-2.0,"Alex Crichton , Carl Lerche , Sean McArthur " http-body,https://github.com/hyperium/http-body,MIT,"Carl Lerche , Lucio Franco , Sean McArthur " http-body-util,https://github.com/hyperium/http-body,MIT,"Carl Lerche , Lucio Franco , Sean McArthur " -http-range-header,https://github.com/MarcusGrass/parse-range-headers,MIT,The http-range-header Authors http-serde,https://gitlab.com/kornelski/http-serde,Apache-2.0 OR MIT,Kornel httparse,https://github.com/seanmonstar/httparse,MIT OR Apache-2.0,Sean McArthur httpdate,https://github.com/pyfisch/httpdate,MIT OR Apache-2.0,Pyfisch @@ -287,7 +288,6 @@ mio,https://github.com/tokio-rs/mio,MIT,"Carl Lerche , Thomas mockall,https://github.com/asomers/mockall,MIT OR Apache-2.0,Alan Somers mockall_derive,https://github.com/asomers/mockall,MIT OR Apache-2.0,Alan Somers mrecordlog,https://github.com/quickwit-oss/mrecordlog,MIT,The mrecordlog Authors -multer,https://github.com/rousan/multer-rs,MIT,Rousan Ali multimap,https://github.com/havarnov/multimap,MIT OR Apache-2.0,Håvar Nøvik murmurhash32,https://github.com/quickwit-inc/murmurhash32,MIT,Paul Masurel nanorand,https://github.com/Absolucy/nanorand-rs,Zlib,Lucy @@ -494,7 +494,6 @@ tokio-macros,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 tokio-stream,https://github.com/tokio-rs/tokio,MIT,Tokio Contributors -tokio-tungstenite,https://github.com/snapview/tokio-tungstenite,MIT,"Daniel Abramov , Alexey Galakhov " tokio-util,https://github.com/tokio-rs/tokio,MIT,Tokio Contributors toml,https://github.com/toml-rs/toml,MIT OR Apache-2.0,Alex Crichton toml_datetime,https://github.com/toml-rs/toml,MIT OR Apache-2.0,The toml_datetime Authors @@ -516,7 +515,6 @@ tracing-serde,https://github.com/tokio-rs/tracing,MIT,Tokio Contributors , David Barsky , Tokio Contributors " try-lock,https://github.com/seanmonstar/try-lock,MIT,Sean McArthur ttl_cache,https://github.com/stusmall/ttl_cache,MIT OR Apache-2.0,Stu Small -tungstenite,https://github.com/snapview/tungstenite-rs,MIT OR Apache-2.0,"Alexey Galakhov, Daniel Abramov" typenum,https://github.com/paholg/typenum,MIT OR Apache-2.0,"Paho Lurie-Gregg , Andre Bogus " ulid,https://github.com/dylanhart/ulid-rs,MIT,dylanhart unarray,https://github.com/cameron1024/unarray,MIT OR Apache-2.0,The unarray Authors @@ -528,7 +526,6 @@ untrusted,https://github.com/briansmith/untrusted,ISC,Brian Smith , Bertram Truong " username,https://pijul.org/darcs/user,MIT OR Apache-2.0,Pierre-Étienne Meunier -utf-8,https://github.com/SimonSapin/rust-utf8,MIT OR Apache-2.0,Simon Sapin utf8-ranges,https://github.com/BurntSushi/utf8-ranges,Unlicense OR MIT,Andrew Gallant utf8_iter,https://github.com/hsivonen/utf8_iter,Apache-2.0 OR MIT,Henri Sivonen utf8parse,https://github.com/alacritty/vte,Apache-2.0 OR MIT,"Joe Wilm , Christian Duerr " diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 40f9e3720ab..b9da496d8ee 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -16,7 +16,7 @@ use std::fmt::Formatter; use std::sync::Arc; use hyper_util::rt::{TokioExecutor, TokioIo}; -use hyper_util::server::conn::auto; +use hyper_util::server::conn::auto::Builder; use hyper_util::service::TowerToHyperService; use quickwit_common::tower::BoxFutureInfaillible; use quickwit_config::{disable_ingest_v1, enable_ingest_v2}; @@ -230,16 +230,22 @@ pub(crate) async fn start_rest_server( tokio::select! { _ = async { loop { - let stream = tcp_listener.accept().await?.0; - let stream = acceptor.accept(stream).await?; - let io = TokioIo::new(stream); + let (tcp_stream, _remote_addr) = tcp_listener.accept().await?; + let acceptor_clone = acceptor.clone(); let service_clone = service.clone(); - tokio::task::spawn(async move { - if let Err(e) = auto::Builder::new(TokioExecutor::new()) - .serve_connection(io, service_clone) + tokio::spawn(async move { + let tls_stream = match acceptor_clone.accept(tcp_stream).await { + Ok(tls_stream) => tls_stream, + Err(err) => { + error!("failed to perform tls handshake: {err:#}"); + return; + } + }; + if let Err(err) = Builder::new(TokioExecutor::new()) + .serve_connection(TokioIo::new(tls_stream), service_clone) .await { - error!(err=?e, "Error serving connection"); + error!("failed to serve connection: {err:#}"); } }); } @@ -258,7 +264,7 @@ pub(crate) async fn start_rest_server( let io = TokioIo::new(stream); let service_clone = service.clone(); tokio::task::spawn(async move { - if let Err(e) = auto::Builder::new(TokioExecutor::new()) + if let Err(e) = Builder::new(TokioExecutor::new()) .serve_connection(io, service_clone) .await { diff --git a/quickwit/quickwit-serve/src/search_api/rest_handler.rs b/quickwit/quickwit-serve/src/search_api/rest_handler.rs index c2e7ecf0a75..3a0c975466c 100644 --- a/quickwit/quickwit-serve/src/search_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/search_api/rest_handler.rs @@ -866,7 +866,7 @@ mod tests { .unwrap() .as_str() .unwrap() - .contains("unknown field `end_unix_timestamp`") + .contains("Invalid query string") ); } @@ -992,6 +992,111 @@ mod tests { } #[tokio::test] +<<<<<<< HEAD +======= + async fn test_rest_search_stream_api() { + let mut mock_search_service = MockSearchService::new(); + mock_search_service + .expect_root_search_stream() + .return_once(|_| { + Ok(Box::pin(futures::stream::iter(vec![ + Ok(Bytes::from("first row\n")), + Ok(Bytes::from("second row")), + ]))) + }); + let rest_search_stream_api_handler = search_handler(mock_search_service); + let response = warp::test::request() + .path( + "/my-index/search/stream?query=obama&search_field=body&fast_field=external_id&\ + output_format=csv", + ) + .reply(&rest_search_stream_api_handler) + .await; + assert_eq!(response.status(), 200); + let body = String::from_utf8_lossy(response.body()); + assert_eq!(body, "first row\nsecond row"); + } + + #[tokio::test] + async fn test_rest_search_stream_api_csv() { + let (index, req) = warp::test::request() + .path("/my-index/search/stream?query=obama&fast_field=external_id&output_format=csv") + .filter(&super::search_stream_filter()) + .await + .unwrap(); + assert_eq!(&index, "my-index"); + assert_eq!( + &req, + &super::SearchStreamRequestQueryString { + query: "obama".to_string(), + search_fields: None, + snippet_fields: None, + start_timestamp: None, + end_timestamp: None, + fast_field: "external_id".to_string(), + output_format: OutputFormat::Csv, + partition_by_field: None, + } + ); + } + + #[tokio::test] + async fn test_rest_search_stream_api_click_house_row_binary() { + let (index, req) = warp::test::request() + .path( + "/my-index/search/stream?query=obama&fast_field=external_id&\ + output_format=click_house_row_binary", + ) + .filter(&super::search_stream_filter()) + .await + .unwrap(); + assert_eq!(&index, "my-index"); + assert_eq!( + &req, + &super::SearchStreamRequestQueryString { + query: "obama".to_string(), + search_fields: None, + snippet_fields: None, + start_timestamp: None, + end_timestamp: None, + fast_field: "external_id".to_string(), + output_format: OutputFormat::ClickHouseRowBinary, + partition_by_field: None, + } + ); + } + + #[tokio::test] + async fn test_rest_search_stream_api_error() { + let rejection = warp::test::request() + .path( + "/my-index/search/stream?query=obama&fast_field=external_id&\ + output_format=ClickHouseRowBinary", + ) + .filter(&super::search_stream_filter()) + .await + .unwrap_err(); + println!("rejection: {rejection:?}"); + let parse_error = rejection.find::().unwrap(); + assert_eq!(parse_error.to_string(), "Invalid query string"); + } + + #[tokio::test] + async fn test_rest_search_stream_api_error_empty_fastfield() { + let rejection = warp::test::request() + .path( + "/my-index/search/stream?query=obama&fast_field=&\ + output_format=click_house_row_binary", + ) + .filter(&super::search_stream_filter()) + .await + .unwrap_err(); + let parse_error = rejection.find::().unwrap(); + assert_eq!(parse_error.to_string(), "Invalid query string"); + } + + #[tokio::test] +>>>>>>> 35ebd236 (fixes) async fn test_rest_search_api_route_serialize_results_with_snippet() -> anyhow::Result<()> { let mut mock_search_service = MockSearchService::new(); mock_search_service.expect_root_search().returning(|_| { From 72dcf64237d0cd97478a6602c886a1e2b1caf4ab Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Wed, 3 Sep 2025 17:18:55 -0400 Subject: [PATCH 05/19] graceful --- quickwit/quickwit-serve/src/rest.rs | 97 ++++++++++++++++++----------- 1 file changed, 62 insertions(+), 35 deletions(-) diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index b9da496d8ee..31259b323d3 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -14,6 +14,7 @@ use std::fmt::Formatter; use std::sync::Arc; +use std::time::Duration; use hyper_util::rt::{TokioExecutor, TokioIo}; use hyper_util::server::conn::auto::Builder; @@ -224,63 +225,89 @@ pub(crate) async fn start_rest_server( // Signal readiness after server setup is complete tokio::spawn(readiness_trigger); + let server = Builder::new(TokioExecutor::new()); + let graceful = hyper_util::server::graceful::GracefulShutdown::new(); + let mut shutdown_signal = std::pin::pin!(shutdown_signal); + if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { let rustls_config = tls::make_rustls_config(tls_config)?; let acceptor = TlsAcceptor::from(rustls_config); - tokio::select! { - _ = async { - loop { - let (tcp_stream, _remote_addr) = tcp_listener.accept().await?; - let acceptor_clone = acceptor.clone(); + + loop { + tokio::select! { + conn = tcp_listener.accept() => { + let (stream, _remote_addr) = match conn { + Ok(conn) => conn, + Err(err) => { + error!("failed to accept connection: {err:#}"); + tokio::time::sleep(Duration::from_secs(1)).await; + continue; + } + }; + + let tls_stream = match acceptor.accept(stream).await { + Ok(tls_stream) => tls_stream, + Err(err) => { + error!("failed to perform tls handshake: {err:#}"); + continue; + } + }; + let service_clone = service.clone(); + let conn = server.serve_connection_with_upgrades(TokioIo::new(tls_stream), service_clone); + let conn = graceful.watch(conn.into_owned()); + tokio::spawn(async move { - let tls_stream = match acceptor_clone.accept(tcp_stream).await { - Ok(tls_stream) => tls_stream, - Err(err) => { - error!("failed to perform tls handshake: {err:#}"); - return; - } - }; - if let Err(err) = Builder::new(TokioExecutor::new()) - .serve_connection(TokioIo::new(tls_stream), service_clone) - .await - { + if let Err(err) = conn.await { error!("failed to serve connection: {err:#}"); } }); + }, + _ = &mut shutdown_signal => { + info!("REST server shutdown signal received"); + break; } - #[allow(unreachable_code)] - Ok::<(), anyhow::Error>(()) - } => {}, - _ = shutdown_signal => { - info!("REST server shutdown signal received"); } } } else { - tokio::select! { - _ = async { - loop { - let (stream, _) = tcp_listener.accept().await?; + loop { + tokio::select! { + conn = tcp_listener.accept() => { + let (stream, _remote_addr) = match conn { + Ok(conn) => conn, + Err(err) => { + error!("failed to accept connection: {err:#}"); + tokio::time::sleep(Duration::from_secs(1)).await; + continue; + } + }; let io = TokioIo::new(stream); let service_clone = service.clone(); - tokio::task::spawn(async move { - if let Err(e) = Builder::new(TokioExecutor::new()) - .serve_connection(io, service_clone) - .await - { + let conn = server.serve_connection_with_upgrades(io, service_clone); + let conn = graceful.watch(conn.into_owned()); + tokio::spawn(async move { + if let Err(e) = conn.await { error!(err=?e, "Error serving connection"); } }); + }, + _ = &mut shutdown_signal => { + info!("REST server shutdown signal received"); + break; } - #[allow(unreachable_code)] - Ok::<(), anyhow::Error>(()) - } => {}, - _ = shutdown_signal => { - info!("REST server shutdown signal received"); } } } + tokio::select! { + _ = graceful.shutdown() => { + eprintln!("Gracefully shutdown!"); + }, + _ = tokio::time::sleep(Duration::from_secs(10)) => { + eprintln!("Waited 10 seconds for graceful shutdown, aborting..."); + } + } + Ok(()) // TODO: use EitherIncoming logic above From e1dff033146518f62bf97cead4ff8dbdec95dcf6 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Thu, 4 Sep 2025 12:17:47 -0400 Subject: [PATCH 06/19] fixes and move around crypto install --- quickwit/Cargo.lock | 1 + quickwit/quickwit-cli/Cargo.toml | 1 + quickwit/quickwit-cli/src/main.rs | 4 + quickwit/quickwit-serve/src/lib.rs | 2 - quickwit/quickwit-serve/src/rest.rs | 8 +- .../src/search_api/rest_handler.rs | 105 ------------------ 6 files changed, 7 insertions(+), 114 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 99d6bae2ca1..c96aa07bdcd 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -6723,6 +6723,7 @@ dependencies = [ "quickwit-storage", "quickwit-telemetry", "reqwest 0.12.23", + "rustls 0.23.31", "serde_json", "tabled", "tempfile", diff --git a/quickwit/quickwit-cli/Cargo.toml b/quickwit/quickwit-cli/Cargo.toml index 2ddbd21baae..c595cb7e90a 100644 --- a/quickwit/quickwit-cli/Cargo.toml +++ b/quickwit/quickwit-cli/Cargo.toml @@ -40,6 +40,7 @@ opentelemetry = { workspace = true } opentelemetry_sdk = { workspace = true } opentelemetry-otlp = { workspace = true } reqwest = { workspace = true } +rustls = { workspace = true } serde_json = { workspace = true } tabled = { workspace = true } tempfile = { workspace = true } diff --git a/quickwit/quickwit-cli/src/main.rs b/quickwit/quickwit-cli/src/main.rs index 989752dfd05..691725eab4e 100644 --- a/quickwit/quickwit-cli/src/main.rs +++ b/quickwit/quickwit-cli/src/main.rs @@ -89,6 +89,10 @@ async fn main_impl() -> anyhow::Result<()> { } }; + rustls::crypto::ring::default_provider() + .install_default() + .expect("rustls crypto ring default provider installation should not fail"); + #[cfg(feature = "jemalloc")] start_jemalloc_metrics_loop(); diff --git a/quickwit/quickwit-serve/src/lib.rs b/quickwit/quickwit-serve/src/lib.rs index 5046a8a8b65..44c0f648b5a 100644 --- a/quickwit/quickwit-serve/src/lib.rs +++ b/quickwit/quickwit-serve/src/lib.rs @@ -434,8 +434,6 @@ pub async fn serve_quickwit( shutdown_signal: BoxFutureInfaillible<()>, env_filter_reload_fn: EnvFilterReloadFn, ) -> anyhow::Result> { - let _ = rustls::crypto::ring::default_provider().install_default(); - let cluster = start_cluster_service(&node_config) .await .context("failed to start cluster service")?; diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 31259b323d3..c8dd18c8b5c 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -14,7 +14,6 @@ use std::fmt::Formatter; use std::sync::Arc; -use std::time::Duration; use hyper_util::rt::{TokioExecutor, TokioIo}; use hyper_util::server::conn::auto::Builder; @@ -240,7 +239,6 @@ pub(crate) async fn start_rest_server( Ok(conn) => conn, Err(err) => { error!("failed to accept connection: {err:#}"); - tokio::time::sleep(Duration::from_secs(1)).await; continue; } }; @@ -277,7 +275,6 @@ pub(crate) async fn start_rest_server( Ok(conn) => conn, Err(err) => { error!("failed to accept connection: {err:#}"); - tokio::time::sleep(Duration::from_secs(1)).await; continue; } }; @@ -301,10 +298,7 @@ pub(crate) async fn start_rest_server( tokio::select! { _ = graceful.shutdown() => { - eprintln!("Gracefully shutdown!"); - }, - _ = tokio::time::sleep(Duration::from_secs(10)) => { - eprintln!("Waited 10 seconds for graceful shutdown, aborting..."); + info!("gracefully shutdown"); } } diff --git a/quickwit/quickwit-serve/src/search_api/rest_handler.rs b/quickwit/quickwit-serve/src/search_api/rest_handler.rs index 3a0c975466c..6bc33186f89 100644 --- a/quickwit/quickwit-serve/src/search_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/search_api/rest_handler.rs @@ -992,111 +992,6 @@ mod tests { } #[tokio::test] -<<<<<<< HEAD -======= - async fn test_rest_search_stream_api() { - let mut mock_search_service = MockSearchService::new(); - mock_search_service - .expect_root_search_stream() - .return_once(|_| { - Ok(Box::pin(futures::stream::iter(vec![ - Ok(Bytes::from("first row\n")), - Ok(Bytes::from("second row")), - ]))) - }); - let rest_search_stream_api_handler = search_handler(mock_search_service); - let response = warp::test::request() - .path( - "/my-index/search/stream?query=obama&search_field=body&fast_field=external_id&\ - output_format=csv", - ) - .reply(&rest_search_stream_api_handler) - .await; - assert_eq!(response.status(), 200); - let body = String::from_utf8_lossy(response.body()); - assert_eq!(body, "first row\nsecond row"); - } - - #[tokio::test] - async fn test_rest_search_stream_api_csv() { - let (index, req) = warp::test::request() - .path("/my-index/search/stream?query=obama&fast_field=external_id&output_format=csv") - .filter(&super::search_stream_filter()) - .await - .unwrap(); - assert_eq!(&index, "my-index"); - assert_eq!( - &req, - &super::SearchStreamRequestQueryString { - query: "obama".to_string(), - search_fields: None, - snippet_fields: None, - start_timestamp: None, - end_timestamp: None, - fast_field: "external_id".to_string(), - output_format: OutputFormat::Csv, - partition_by_field: None, - } - ); - } - - #[tokio::test] - async fn test_rest_search_stream_api_click_house_row_binary() { - let (index, req) = warp::test::request() - .path( - "/my-index/search/stream?query=obama&fast_field=external_id&\ - output_format=click_house_row_binary", - ) - .filter(&super::search_stream_filter()) - .await - .unwrap(); - assert_eq!(&index, "my-index"); - assert_eq!( - &req, - &super::SearchStreamRequestQueryString { - query: "obama".to_string(), - search_fields: None, - snippet_fields: None, - start_timestamp: None, - end_timestamp: None, - fast_field: "external_id".to_string(), - output_format: OutputFormat::ClickHouseRowBinary, - partition_by_field: None, - } - ); - } - - #[tokio::test] - async fn test_rest_search_stream_api_error() { - let rejection = warp::test::request() - .path( - "/my-index/search/stream?query=obama&fast_field=external_id&\ - output_format=ClickHouseRowBinary", - ) - .filter(&super::search_stream_filter()) - .await - .unwrap_err(); - println!("rejection: {rejection:?}"); - let parse_error = rejection.find::().unwrap(); - assert_eq!(parse_error.to_string(), "Invalid query string"); - } - - #[tokio::test] - async fn test_rest_search_stream_api_error_empty_fastfield() { - let rejection = warp::test::request() - .path( - "/my-index/search/stream?query=obama&fast_field=&\ - output_format=click_house_row_binary", - ) - .filter(&super::search_stream_filter()) - .await - .unwrap_err(); - let parse_error = rejection.find::().unwrap(); - assert_eq!(parse_error.to_string(), "Invalid query string"); - } - - #[tokio::test] ->>>>>>> 35ebd236 (fixes) async fn test_rest_search_api_route_serialize_results_with_snippet() -> anyhow::Result<()> { let mut mock_search_service = MockSearchService::new(); mock_search_service.expect_root_search().returning(|_| { From 4cf6d4c4b455e3eaa135833a574d3752226dcbbe Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Thu, 4 Sep 2025 13:27:27 -0400 Subject: [PATCH 07/19] aws-sdk-s3 back to 1.62 --- quickwit/Cargo.lock | 58 +++++++++++++++++++---------- quickwit/Cargo.toml | 2 +- quickwit/quickwit-serve/src/rest.rs | 4 +- 3 files changed, 40 insertions(+), 24 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index c96aa07bdcd..565bd12f343 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -499,7 +499,7 @@ dependencies = [ "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", - "aws-smithy-http", + "aws-smithy-http 0.62.3", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -539,9 +539,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.103.0" +version = "1.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af040a86ae4378b7ed2f62c83b36be1848709bbbf5757ec850d0e08596a26be9" +checksum = "83d3a2854c7490b4c63d2b0e8c3976d628c80afa3045d078a715b2edb2ee4e0a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -549,8 +549,8 @@ dependencies = [ "aws-smithy-async", "aws-smithy-checksums", "aws-smithy-eventstream", - "aws-smithy-http", - "aws-smithy-json", + "aws-smithy-http 0.60.12", + "aws-smithy-json 0.60.7", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -561,9 +561,9 @@ dependencies = [ "hex", "hmac", "http 0.2.12", - "http 1.3.1", "http-body 0.4.6", "lru 0.12.5", + "once_cell", "percent-encoding", "regex-lite", "sha2", @@ -668,7 +668,7 @@ checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", - "aws-smithy-http", + "aws-smithy-http 0.62.3", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", @@ -701,14 +701,15 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.8" +version = "0.60.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d2df0314b8e307995a3b86d44565dfe9de41f876901a7d71886c756a25979f" +checksum = "ba1a71073fca26775c8b5189175ea8863afb1c9ea2cceb02a5de5ad9dfbaa795" dependencies = [ - "aws-smithy-http", + "aws-smithy-http 0.60.12", "aws-smithy-types", "bytes", - "crc-fast", + "crc32c", + "crc32fast", "hex", "http 0.2.12", "http-body 0.4.6", @@ -730,6 +731,27 @@ dependencies = [ "crc32fast", ] +[[package]] +name = "aws-smithy-http" +version = "0.60.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" +dependencies = [ + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + [[package]] name = "aws-smithy-http" version = "0.62.3" @@ -850,7 +872,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.62.3", "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", @@ -2084,16 +2106,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "crc-fast" -version = "1.3.0" +name = "crc32c" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf62af4cc77d8fe1c22dde4e721d87f2f54056139d8c412e1366b740305f56f" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" dependencies = [ - "crc", - "digest", - "libc", - "rand 0.9.2", - "regex", + "rustc_version", ] [[package]] diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index 3a6e8f5401b..246d6a7a47d 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -294,7 +294,7 @@ aws-config = "1.8" aws-credential-types = { version = "1.2", features = ["hardcoded-credentials"] } aws-runtime = "1.5" aws-sdk-kinesis = "1.86" -aws-sdk-s3 = "=1.103" +aws-sdk-s3 = "=1.62" aws-sdk-sqs = "1.82" aws-smithy-async = "1.2" aws-smithy-http-client = { version = "1.1", features = ["default-client"] } diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index c8dd18c8b5c..1db3a13626f 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -220,9 +220,7 @@ pub(crate) async fn start_rest_server( ); let service = TowerToHyperService::new(service); - - // Signal readiness after server setup is complete - tokio::spawn(readiness_trigger); + readiness_trigger.await; let server = Builder::new(TokioExecutor::new()); let graceful = hyper_util::server::graceful::GracefulShutdown::new(); From e3b2d636429a1a372337c2ae3dbeb02123e832a3 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Thu, 4 Sep 2025 13:40:57 -0400 Subject: [PATCH 08/19] licenses --- LICENSE-3rdparty.csv | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 9897583da5b..fac4888d734 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -105,9 +105,7 @@ constant_time_eq,https://github.com/cesarb/constant_time_eq,CC0-1.0,Cesar Eduard core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers core-foundation-sys,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers cpufeatures,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers -crc,https://github.com/mrhooray/crc-rs,MIT OR Apache-2.0,"Rui Hu , Akhil Velagapudi <4@4khil.com>" -crc-catalog,https://github.com/akhilles/crc-catalog,MIT OR Apache-2.0,Akhil Velagapudi -crc-fast,https://github.com/awesomized/crc-fast-rust,MIT OR Apache-2.0,Don MacAskill +crc32c,https://github.com/zowens/crc32c,Apache-2.0 OR MIT,Zack Owens crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " criterion-plot,https://github.com/bheisler/criterion.rs,MIT OR Apache-2.0,"Jorge Aparicio , Brook Heisler " cron,https://github.com/zslayton/cron,MIT OR Apache-2.0,Zack Slayton From 07f517804daef67c63bc9b657865b7f44cb76acf Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Thu, 4 Sep 2025 14:20:06 -0400 Subject: [PATCH 09/19] add rustls crypto ring installer to tests --- quickwit/Cargo.lock | 1 + quickwit/quickwit-integration-tests/Cargo.toml | 1 + .../src/test_utils/cluster_sandbox.rs | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 565bd12f343..deec3966f3f 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -7140,6 +7140,7 @@ dependencies = [ "quickwit-storage", "rand 0.8.5", "reqwest 0.12.23", + "rustls 0.23.31", "serde_json", "tempfile", "tokio", diff --git a/quickwit/quickwit-integration-tests/Cargo.toml b/quickwit/quickwit-integration-tests/Cargo.toml index 23f2d884718..55308cff556 100644 --- a/quickwit/quickwit-integration-tests/Cargo.toml +++ b/quickwit/quickwit-integration-tests/Cargo.toml @@ -27,6 +27,7 @@ hyper-util = { workspace = true } itertools = { workspace = true } rand = { workspace = true } reqwest = { workspace = true } +rustls = { workspace = true } serde_json = { workspace = true } tempfile = { workspace = true } tokio = { workspace = true } diff --git a/quickwit/quickwit-integration-tests/src/test_utils/cluster_sandbox.rs b/quickwit/quickwit-integration-tests/src/test_utils/cluster_sandbox.rs index 81889a9311a..36fbadbbcea 100644 --- a/quickwit/quickwit-integration-tests/src/test_utils/cluster_sandbox.rs +++ b/quickwit/quickwit-integration-tests/src/test_utils/cluster_sandbox.rs @@ -176,6 +176,10 @@ pub struct ResolvedClusterConfig { impl ResolvedClusterConfig { /// Start a cluster using this config and waits for the nodes to be ready pub async fn start(self) -> ClusterSandbox { + rustls::crypto::ring::default_provider() + .install_default() + .expect("rustls crypto ring default provider installation should not fail"); + let mut node_shutdown_handles = Vec::new(); let runtimes_config = RuntimesConfig::light_for_tests(); let storage_resolver = StorageResolver::unconfigured(); From fee3aa5e31b02201e94a74e1887ffeef68762af4 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Fri, 5 Sep 2025 10:01:12 -0400 Subject: [PATCH 10/19] warp lambda --- quickwit/Cargo.lock | 184 +++++++++++++ .../src/searcher/warp_lambda.rs | 252 ++++++++++++++++++ 2 files changed, 436 insertions(+) create mode 100644 quickwit/quickwit-lambda/src/searcher/warp_lambda.rs diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index deec3966f3f..97fa70edd58 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -956,6 +956,26 @@ dependencies = [ "tracing", ] +[[package]] +name = "aws_lambda_events" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "144ec7565561115498a288850cc6a42b279e09b6c4b88f623eecb9c8ca96c08c" +dependencies = [ + "base64 0.22.1", + "bytes", + "chrono", + "flate2", + "http 1.3.1", + "http-body 1.0.1", + "http-serde", + "query_map", + "serde", + "serde_dynamo", + "serde_json", + "serde_with", +] + [[package]] name = "axum" version = "0.6.20" @@ -4417,6 +4437,82 @@ dependencies = [ "rustversion", ] +[[package]] +name = "lambda_http" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b470cea1ec37b96e9543870a33c1f4b9e243754fe5892668efa3125ea12784" +dependencies = [ + "aws_lambda_events", + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "lambda_runtime", + "mime", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio-stream", + "url", +] + +[[package]] +name = "lambda_runtime" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed49669d6430292aead991e19bf13153135a884f916e68f32997c951af637ebe" +dependencies = [ + "async-stream", + "base64 0.22.1", + "bytes", + "futures", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "http-serde", + "hyper 1.7.0", + "hyper-util", + "lambda_runtime_api_client", + "pin-project", + "serde", + "serde_json", + "serde_path_to_error", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tracing", +] + +[[package]] +name = "lambda_runtime_api_client" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c90a10f094475a34a04da2be11686c4dcfe214d93413162db9ffdff3d3af293a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-util", + "tokio", + "tower 0.4.13", + "tower-service", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -5524,6 +5620,19 @@ dependencies = [ "tracing", ] +[[package]] +name = "opentelemetry-http" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" +dependencies = [ + "async-trait", + "bytes", + "http 1.3.1", + "opentelemetry", + "reqwest 0.12.23", +] + [[package]] name = "opentelemetry-otlp" version = "0.27.0" @@ -5534,9 +5643,11 @@ dependencies = [ "futures-core", "http 1.3.1", "opentelemetry", + "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", "prost 0.13.5", + "reqwest 0.12.23", "thiserror 1.0.69", "tokio", "tonic 0.12.3", @@ -6626,6 +6737,17 @@ dependencies = [ "zstd 0.13.3", ] +[[package]] +name = "query_map" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eab6b8b1074ef3359a863758dae650c7c0c6027927a085b7af911c8e0bf3a15" +dependencies = [ + "form_urlencoded", + "serde", + "serde_derive", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -7214,6 +7336,55 @@ dependencies = [ "utoipa", ] +[[package]] +name = "quickwit-lambda" +version = "0.8.0" +dependencies = [ + "anyhow", + "aws_lambda_events", + "bytesize", + "chitchat", + "chrono", + "flate2", + "futures", + "http 1.3.1", + "http-body-util", + "hyper 1.7.0", + "lambda_http", + "lambda_runtime", + "mime_guess", + "once_cell", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry_sdk", + "quickwit-actors", + "quickwit-cli", + "quickwit-cluster", + "quickwit-common", + "quickwit-config", + "quickwit-index-management", + "quickwit-indexing", + "quickwit-ingest", + "quickwit-janitor", + "quickwit-metastore", + "quickwit-proto", + "quickwit-search", + "quickwit-serve", + "quickwit-storage", + "quickwit-telemetry", + "rand 0.8.5", + "reqwest 0.12.23", + "serde", + "serde_json", + "serial_test", + "time", + "tokio", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber", + "warp", +] + [[package]] name = "quickwit-macros" version = "0.8.0" @@ -7991,6 +8162,7 @@ checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", "futures-util", "http 1.3.1", @@ -8007,6 +8179,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.31", + "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", "serde_json", @@ -8710,6 +8883,16 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "serde_dynamo" +version = "4.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36c1b1792cfd9de29eb373ee6a4b74650369c096f55db7198ceb7b8921d1f7f" +dependencies = [ + "base64 0.21.7", + "serde", +] + [[package]] name = "serde_json" version = "1.0.143" @@ -10865,6 +11048,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d06d9202adc1f15d709c4f4a2069be5428aa912cc025d6f268ac441ab066b0" dependencies = [ + "async-compression", "bytes", "futures-channel", "futures-util", diff --git a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs new file mode 100644 index 00000000000..9ed976a3da0 --- /dev/null +++ b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs @@ -0,0 +1,252 @@ +// Copyright 2021-Present Datadog, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Based on https://github.com/aslamplr/warp_lambda under MIT license + +use core::future::Future; +use std::collections::HashSet; +use std::convert::Infallible; +use std::marker::PhantomData; +use std::pin::Pin; +use std::str::FromStr; +use std::task::{Context, Poll}; + +use anyhow::anyhow; +use http_body_util::BodyExt; +use lambda_http::http::HeaderValue; +use lambda_http::{ + Adapter, Body as LambdaBody, Error as LambdaError, Request, RequestExt, Response, Service, + lambda_runtime, +}; +use mime_guess::{Mime, mime}; +use once_cell::sync::Lazy; +use tracing::{Instrument, info_span}; +pub use {lambda_http, warp}; +use hyper::body::Bytes; +use futures::stream::StreamExt; +use http_body_util::{combinators::BoxBody, Full}; +use warp::hyper::body::{Body, Frame}; + +pub struct WarpBody(); + +impl Body for WarpBody { + type Data = Bytes; + type Error = Infallible; + fn poll_frame(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll, Self::Error>>> { + Pin::new(&mut self).poll_frame(cx) + } +} + + +pub type WarpRequest = http::Request; +pub type WarpResponse = http::Response; + + +static PLAINTEXT_MIMES: Lazy> = Lazy::new(|| { + HashSet::from_iter([ + mime::APPLICATION_JAVASCRIPT, + mime::APPLICATION_JAVASCRIPT_UTF_8, + mime::APPLICATION_JSON, + ]) +}); + +pub async fn run<'a, S>(service: S) -> Result<(), LambdaError> +where + S: Service + Send + 'a, + S::Future: Send + 'a, +{ + lambda_runtime::run(Adapter::from(WarpAdapter::new(service))).await +} + +#[derive(Clone)] +pub struct WarpAdapter<'a, S> +where + S: Service, + S::Future: Send + 'a, +{ + warp_service: S, + _phantom_data: PhantomData<&'a WarpResponse>, +} + +impl<'a, S> WarpAdapter<'a, S> +where + S: Service, + S::Future: Send + 'a, +{ + pub fn new(warp_service: S) -> Self { + Self { + warp_service, + _phantom_data: PhantomData, + } + } +} + +impl<'a, S> Service for WarpAdapter<'a, S> +where + S: Service + 'a, + S::Future: Send + 'a, +{ + type Response = Response; + type Error = LambdaError; + type Future = Pin> + Send + 'a>>; + + fn poll_ready(&mut self, ctx: &mut Context<'_>) -> Poll> { + self.warp_service + .poll_ready(ctx) + .map_err(|error| match error {}) + } + + fn call(&mut self, request: Request) -> Self::Future { + let query_params = request.query_string_parameters(); + let request_id = request.lambda_context().request_id.clone(); + let (parts, body) = request.into_parts(); + let mut warp_parts = lambda_parts_to_warp_parts(&parts); + let (content_len, warp_body) = match body { + LambdaBody::Empty => (0, BoxBody::new(Full::new(Bytes::new()))), + LambdaBody::Text(text) => (text.len(), BoxBody::new(Full::new(Bytes::from(text.into_bytes())))), + LambdaBody::Binary(bytes) => (bytes.len(), BoxBody::new(Full::new(Bytes::from(bytes)))), + }; + let mut uri = format!("http://{}{}", "127.0.0.1", parts.uri.path()); + if !query_params.is_empty() { + let url_res = reqwest::Url::parse_with_params(&uri, query_params.iter()); + if let Ok(url) = url_res { + uri = url.into(); + } else { + return Box::pin(async move { Err(anyhow!("invalid url: {uri}").into()) }); + } + } + warp_parts.uri = warp::hyper::Uri::from_str(uri.as_str()).unwrap(); + // REST API Gateways swallow the content-length header which is required + // by many Quickwit routes (`warp::body::content_length_limit(xxx)`) + if let warp::http::header::Entry::Vacant(entry) = warp_parts.headers.entry("Content-Length") + { + entry.insert(content_len.into()); + } + let warp_request = WarpRequest::from_parts(warp_parts, warp_body); + + // Call warp service with warp request, save future + let warp_fut = self.warp_service.call(warp_request); + + // Create lambda future + let fut = async move { + let warp_response = warp_fut.await?; + let (warp_parts, warp_body): (_, _) = warp_response.into_parts(); + let parts = warp_parts_to_lambda_parts(&warp_parts); + let body = warp_body_to_lambda_body(&parts, warp_body).await?; + let lambda_response = Response::from_parts(parts, body); + Ok::(lambda_response) + } + .instrument(info_span!("searcher request", request_id)); + Box::pin(fut) + } +} + +fn lambda_parts_to_warp_parts( + parts: &lambda_http::http::request::Parts, +) -> warp::http::request::Parts { + let mut builder = warp::http::Request::builder() + .method(lambda_method_to_warp_method(&parts.method)) + .uri(lambda_uri_to_warp_uri(&parts.uri)) + .version(lambda_version_to_warp_version(parts.version)); + + for (name, value) in parts.headers.iter() { + builder = builder.header(name.as_str(), value.as_bytes()); + } + let request = builder.body(()).unwrap(); + let (parts, _) = request.into_parts(); + parts +} + +fn warp_parts_to_lambda_parts( + parts: &warp::http::response::Parts, +) -> lambda_http::http::response::Parts { + let mut builder = lambda_http::http::Response::builder() + .status(parts.status.as_u16()) + .version(warp_version_to_lambda_version(parts.version)); + + for (name, value) in parts.headers.iter() { + builder = builder.header(name.as_str(), value.as_bytes()); + } + let response = builder.body(()).unwrap(); + let (parts, _) = response.into_parts(); + parts +} + +async fn warp_body_to_lambda_body( + parts: &lambda_http::http::response::Parts, + warp_body: WarpBody, +) -> Result { + // Concatenate all bytes into a single buffer + let mut body_bytes = Vec::new(); + while let Some(bytes) = warp_body.poll_frame().await { + body_bytes.extend_from_slice(&bytes); + } + + // Attempt to determine the Content-Type + let content_type_opt: Option<&HeaderValue> = parts.headers.get("Content-Type"); + let content_encoding_opt: Option<&HeaderValue> = parts.headers.get("Content-Encoding"); + + // If Content-Encoding is present, assume compression + // If Content-Type is not present, don't assume is a string + if let (Some(content_type), None) = (content_type_opt, content_encoding_opt) { + let content_type_str = content_type.to_str()?; + let mime = content_type_str.parse::()?; + + if PLAINTEXT_MIMES.contains(&mime) || mime.type_() == mime::TEXT { + return Ok(LambdaBody::Text(String::from_utf8(body_bytes)?)); + } + } + // Not a text response, make binary + Ok(LambdaBody::Binary(body_bytes)) +} + +fn lambda_method_to_warp_method(method: &lambda_http::http::Method) -> warp::http::Method { + method.as_str().parse::().unwrap() +} + +fn lambda_uri_to_warp_uri(uri: &lambda_http::http::Uri) -> warp::http::Uri { + uri.to_string().parse::().unwrap() +} + +fn lambda_version_to_warp_version(version: lambda_http::http::Version) -> warp::http::Version { + if version == lambda_http::http::Version::HTTP_09 { + warp::http::Version::HTTP_09 + } else if version == lambda_http::http::Version::HTTP_10 { + warp::http::Version::HTTP_10 + } else if version == lambda_http::http::Version::HTTP_11 { + warp::http::Version::HTTP_11 + } else if version == lambda_http::http::Version::HTTP_2 { + warp::http::Version::HTTP_2 + } else if version == lambda_http::http::Version::HTTP_3 { + warp::http::Version::HTTP_3 + } else { + panic!("invalid HTTP version: {version:?}"); + } +} + +fn warp_version_to_lambda_version(version: warp::http::Version) -> lambda_http::http::Version { + if version == warp::http::Version::HTTP_09 { + lambda_http::http::Version::HTTP_09 + } else if version == warp::http::Version::HTTP_10 { + lambda_http::http::Version::HTTP_10 + } else if version == warp::http::Version::HTTP_11 { + lambda_http::http::Version::HTTP_11 + } else if version == warp::http::Version::HTTP_2 { + lambda_http::http::Version::HTTP_2 + } else if version == warp::http::Version::HTTP_3 { + lambda_http::http::Version::HTTP_3 + } else { + panic!("invalid HTTP version: {version:?}"); + } +} From 24206f52107efe84a0a2bdfa4622bd04dddd510b Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Fri, 5 Sep 2025 10:47:47 -0400 Subject: [PATCH 11/19] warp lambda changes --- .../src/searcher/warp_lambda.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs index 9ed976a3da0..930451f60af 100644 --- a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs +++ b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs @@ -35,7 +35,7 @@ use tracing::{Instrument, info_span}; pub use {lambda_http, warp}; use hyper::body::Bytes; use futures::stream::StreamExt; -use http_body_util::{combinators::BoxBody, Full}; +use http_body_util::{combinators::BoxBody, Full, Empty}; use warp::hyper::body::{Body, Frame}; pub struct WarpBody(); @@ -49,8 +49,8 @@ impl Body for WarpBody { } -pub type WarpRequest = http::Request; -pub type WarpResponse = http::Response; +pub type WarpRequest = http::Request>; +pub type WarpResponse = http::Response>; static PLAINTEXT_MIMES: Lazy> = Lazy::new(|| { @@ -113,9 +113,9 @@ where let (parts, body) = request.into_parts(); let mut warp_parts = lambda_parts_to_warp_parts(&parts); let (content_len, warp_body) = match body { - LambdaBody::Empty => (0, BoxBody::new(Full::new(Bytes::new()))), - LambdaBody::Text(text) => (text.len(), BoxBody::new(Full::new(Bytes::from(text.into_bytes())))), - LambdaBody::Binary(bytes) => (bytes.len(), BoxBody::new(Full::new(Bytes::from(bytes)))), + LambdaBody::Empty => (0, Full::new(Bytes::new())), + LambdaBody::Text(text) => (text.len(), Full::new(Bytes::from(text.into_bytes()))), + LambdaBody::Binary(bytes) => (bytes.len(), Full::new(Bytes::from(bytes))), }; let mut uri = format!("http://{}{}", "127.0.0.1", parts.uri.path()); if !query_params.is_empty() { @@ -185,13 +185,10 @@ fn warp_parts_to_lambda_parts( async fn warp_body_to_lambda_body( parts: &lambda_http::http::response::Parts, - warp_body: WarpBody, + warp_body: Full, ) -> Result { // Concatenate all bytes into a single buffer - let mut body_bytes = Vec::new(); - while let Some(bytes) = warp_body.poll_frame().await { - body_bytes.extend_from_slice(&bytes); - } + let body_bytes = warp_body.collect().await?.to_bytes().to_vec(); // Attempt to determine the Content-Type let content_type_opt: Option<&HeaderValue> = parts.headers.get("Content-Type"); From 709e38c992e31fcde56da27e41ef2693047ad400 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Mon, 8 Sep 2025 11:30:45 -0400 Subject: [PATCH 12/19] warp lambda fix and refactor --- .../src/searcher/warp_lambda.rs | 53 +++--- quickwit/quickwit-serve/src/rest.rs | 164 ++++-------------- 2 files changed, 58 insertions(+), 159 deletions(-) diff --git a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs index 930451f60af..8f93714d24b 100644 --- a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs +++ b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs @@ -23,7 +23,7 @@ use std::str::FromStr; use std::task::{Context, Poll}; use anyhow::anyhow; -use http_body_util::BodyExt; +use http_body_util::{BodyExt, Full}; use lambda_http::http::HeaderValue; use lambda_http::{ Adapter, Body as LambdaBody, Error as LambdaError, Request, RequestExt, Response, Service, @@ -32,27 +32,12 @@ use lambda_http::{ use mime_guess::{Mime, mime}; use once_cell::sync::Lazy; use tracing::{Instrument, info_span}; +use warp::hyper::body::{Body, Bytes}; pub use {lambda_http, warp}; -use hyper::body::Bytes; -use futures::stream::StreamExt; -use http_body_util::{combinators::BoxBody, Full, Empty}; -use warp::hyper::body::{Body, Frame}; - -pub struct WarpBody(); - -impl Body for WarpBody { - type Data = Bytes; - type Error = Infallible; - fn poll_frame(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll, Self::Error>>> { - Pin::new(&mut self).poll_frame(cx) - } -} - pub type WarpRequest = http::Request>; pub type WarpResponse = http::Response>; - static PLAINTEXT_MIMES: Lazy> = Lazy::new(|| { HashSet::from_iter([ mime::APPLICATION_JAVASCRIPT, @@ -61,28 +46,34 @@ static PLAINTEXT_MIMES: Lazy> = Lazy::new(|| { ]) }); -pub async fn run<'a, S>(service: S) -> Result<(), LambdaError> +pub async fn run<'a, S, B>(service: S) -> Result<(), LambdaError> where - S: Service + Send + 'a, + S: Service, Error = Infallible> + Send + 'a, S::Future: Send + 'a, + B: Body + Send, + B::Error: std::error::Error + Send + Sync + 'static, { lambda_runtime::run(Adapter::from(WarpAdapter::new(service))).await } #[derive(Clone)] -pub struct WarpAdapter<'a, S> +pub struct WarpAdapter<'a, S, B> where - S: Service, + S: Service, Error = Infallible>, S::Future: Send + 'a, + B: Body + Send, + B::Error: std::error::Error + Send + Sync + 'static, { warp_service: S, _phantom_data: PhantomData<&'a WarpResponse>, } -impl<'a, S> WarpAdapter<'a, S> +impl<'a, S, B> WarpAdapter<'a, S, B> where - S: Service, + S: Service, Error = Infallible>, S::Future: Send + 'a, + B: Body + Send, + B::Error: std::error::Error + Send + Sync + 'static, { pub fn new(warp_service: S) -> Self { Self { @@ -92,10 +83,12 @@ where } } -impl<'a, S> Service for WarpAdapter<'a, S> +impl<'a, S, B> Service for WarpAdapter<'a, S, B> where - S: Service + 'a, + S: Service, Error = Infallible> + 'a, S::Future: Send + 'a, + B: Body + Send, + B::Error: std::error::Error + Send + Sync + 'static, { type Response = Response; type Error = LambdaError; @@ -183,10 +176,14 @@ fn warp_parts_to_lambda_parts( parts } -async fn warp_body_to_lambda_body( +async fn warp_body_to_lambda_body( parts: &lambda_http::http::response::Parts, - warp_body: Full, -) -> Result { + warp_body: B, +) -> Result +where + B: Body + Send, + B::Error: std::error::Error + Send + Sync + 'static, +{ // Concatenate all bytes into a single buffer let body_bytes = warp_body.collect().await?.to_bytes().to_vec(); diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 1db3a13626f..543b2d0b617 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -23,6 +23,7 @@ use quickwit_config::{disable_ingest_v1, enable_ingest_v2}; use quickwit_search::SearchService; use tokio::net::TcpListener; use tokio_rustls::TlsAcceptor; +use tokio_util::either::Either; use tower::ServiceBuilder; use tower_http::compression::CompressionLayer; use tower_http::compression::predicate::{NotForContentType, Predicate, SizeAbove}; @@ -220,27 +221,27 @@ pub(crate) async fn start_rest_server( ); let service = TowerToHyperService::new(service); - readiness_trigger.await; let server = Builder::new(TokioExecutor::new()); let graceful = hyper_util::server::graceful::GracefulShutdown::new(); let mut shutdown_signal = std::pin::pin!(shutdown_signal); + readiness_trigger.await; - if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { - let rustls_config = tls::make_rustls_config(tls_config)?; - let acceptor = TlsAcceptor::from(rustls_config); - - loop { - tokio::select! { - conn = tcp_listener.accept() => { - let (stream, _remote_addr) = match conn { - Ok(conn) => conn, - Err(err) => { - error!("failed to accept connection: {err:#}"); - continue; - } - }; - + loop { + tokio::select! { + conn = tcp_listener.accept() => { + let (stream, _remote_addr) = match conn { + Ok(conn) => conn, + Err(err) => { + error!("failed to accept connection: {err:#}"); + continue; + } + }; + + let either_stream = + if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { + let rustls_config = tls::make_rustls_config(tls_config)?; + let acceptor = TlsAcceptor::from(rustls_config); let tls_stream = match acceptor.accept(stream).await { Ok(tls_stream) => tls_stream, Err(err) => { @@ -248,48 +249,22 @@ pub(crate) async fn start_rest_server( continue; } }; - - let service_clone = service.clone(); - let conn = server.serve_connection_with_upgrades(TokioIo::new(tls_stream), service_clone); - let conn = graceful.watch(conn.into_owned()); - - tokio::spawn(async move { - if let Err(err) = conn.await { - error!("failed to serve connection: {err:#}"); - } - }); - }, - _ = &mut shutdown_signal => { - info!("REST server shutdown signal received"); - break; - } - } - } - } else { - loop { - tokio::select! { - conn = tcp_listener.accept() => { - let (stream, _remote_addr) = match conn { - Ok(conn) => conn, - Err(err) => { - error!("failed to accept connection: {err:#}"); - continue; - } - }; - let io = TokioIo::new(stream); - let service_clone = service.clone(); - let conn = server.serve_connection_with_upgrades(io, service_clone); - let conn = graceful.watch(conn.into_owned()); - tokio::spawn(async move { - if let Err(e) = conn.await { - error!(err=?e, "Error serving connection"); - } - }); - }, - _ = &mut shutdown_signal => { - info!("REST server shutdown signal received"); - break; - } + Either::Left(tls_stream) + } else { + Either::Right(stream) + }; + + let conn = server.serve_connection_with_upgrades(TokioIo::new(either_stream), service.clone()); + let conn = graceful.watch(conn.into_owned()); + tokio::spawn(async move { + if let Err(err) = conn.await { + error!("failed to serve connection: {err:#}"); + } + }); + }, + _ = &mut shutdown_signal => { + info!("REST server shutdown signal received"); + break; } } } @@ -301,35 +276,6 @@ pub(crate) async fn start_rest_server( } Ok(()) - - // TODO: use EitherIncoming logic above - // let incoming = AddrIncoming::from_listener(tcp_listener)?; - - // let maybe_tls_incoming = - // if let Some(tls_config) = &quickwit_services.node_config.rest_config.tls { - // let rustls_config = tls::make_rustls_config(tls_config)?; - // EitherIncoming::Left(tls::TlsAcceptor::new(rustls_config, incoming)) - // } else { - // EitherIncoming::Right(incoming) - // }; - - // `graceful_shutdown()` seems to be blocking in presence of existing connections. - // The following approach of dropping the serve supposedly is not bullet proof, but it seems to - // work in our unit test. - // - // See more of the discussion here: - // https://github.com/hyperium/hyper/issues/2386 - - // let serve_fut = async move { - // tokio::select! { - // res = warp::hyper::Server::builder(maybe_tls_incoming).serve(Shared::new(service)) - // => { res } _ = shutdown_signal => { Ok(()) } - // } - // }; - - // let (serve_res, _trigger_res) = tokio::join!(serve_fut, readiness_trigger); - // serve_res?; - // Ok(()) } fn search_routes( @@ -618,50 +564,6 @@ mod tls { } } -// enum EitherIncoming { -// Left(L), -// Right(R), -// } - -// impl EitherIncoming { -// pub fn as_pin_mut(self: Pin<&mut Self>) -> EitherIncoming, Pin<&mut R>> { -// // SAFETY: `get_unchecked_mut` is fine because we don't move anything. -// // We can use `new_unchecked` because the `inner` parts are guaranteed -// // to be pinned, as they come from `self` which is pinned, and we never -// // offer an unpinned `&mut A` or `&mut B` through `Pin<&mut Self>`. We -// // also don't have an implementation of `Drop`, nor manual `Unpin`. -// unsafe { -// match self.get_unchecked_mut() { -// EitherIncoming::Left(inner) => EitherIncoming::Left(Pin::new_unchecked(inner)), -// EitherIncoming::Right(inner) => EitherIncoming::Right(Pin::new_unchecked(inner)), -// } -// } -// } -// } - -// impl Accept for EitherIncoming -// where -// L: Accept, -// R: Accept, -// { -// type Conn = tokio_util::either::Either; -// type Error = E; - -// fn poll_accept( -// self: Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// ) -> std::task::Poll>> { -// match self.as_pin_mut() { -// EitherIncoming::Left(l) => l -// .poll_accept(cx) -// .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Left))), -// EitherIncoming::Right(r) => r -// .poll_accept(cx) -// .map(|opt| opt.map(|res| res.map(tokio_util::either::Either::Right))), -// } -// } -// } - #[cfg(test)] mod tests { use std::future::Future; From 11ebfd15c630ae6843bba8569a930f73eda6f19c Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Mon, 8 Sep 2025 11:33:08 -0400 Subject: [PATCH 13/19] license --- LICENSE-3rdparty.csv | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index fac4888d734..fe008b51c8e 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -50,6 +50,7 @@ aws-smithy-runtime-api,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS aws-smithy-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " aws-smithy-xml,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " aws-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws_lambda_events,https://github.com/awslabs/aws-lambda-rust-runtime,MIT,"Christian Legnitto , Sam Rijs , David Calavera " axum,https://github.com/tokio-rs/axum,MIT,The axum Authors axum-core,https://github.com/tokio-rs/axum,MIT,The axum-core Authors backtrace,https://github.com/rust-lang/backtrace-rs,MIT OR Apache-2.0,The Rust Project Developers @@ -240,6 +241,9 @@ itoa,https://github.com/dtolnay/itoa,MIT OR Apache-2.0,David Tolnay js-sys,https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/js-sys,MIT OR Apache-2.0,The wasm-bindgen Developers json_comments,https://github.com/tmccombs/json-comments-rs,Apache-2.0,Thayne McCombs +lambda_http,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " +lambda_runtime,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " +lambda_runtime_api_client,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel lazycell,https://github.com/indiv0/lazycell,MIT OR Apache-2.0,"Alex Crichton , Nikita Pekin " levenshtein_automata,https://github.com/tantivy-search/levenshtein-automata,MIT,Paul Masurel @@ -310,6 +314,7 @@ oneshot,https://github.com/faern/oneshot,MIT OR Apache-2.0,Linus Färnstrand openssl-probe,https://github.com/alexcrichton/openssl-probe,MIT OR Apache-2.0,Alex Crichton opentelemetry,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry Authors +opentelemetry-http,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry-http Authors opentelemetry-otlp,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp,Apache-2.0,The opentelemetry-otlp Authors opentelemetry-proto,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto,Apache-2.0,The opentelemetry-proto Authors opentelemetry_sdk,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry_sdk Authors @@ -368,6 +373,7 @@ prost-build,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Casper Meijn , Tokio Contributors " prost-types,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Casper Meijn , Tokio Contributors " protobuf,https://github.com/stepancheg/rust-protobuf,MIT,Stepan Koltsov +query_map,https://github.com/calavera/query-map-rs,MIT,The query_map Authors quick-error,http://github.com/tailhook/quick-error,MIT OR Apache-2.0,"Paul Colomiets , Colin Kiegel " quinn,https://github.com/quinn-rs/quinn,MIT OR Apache-2.0,The quinn Authors quinn-proto,https://github.com/quinn-rs/quinn,MIT OR Apache-2.0,The quinn-proto Authors @@ -428,8 +434,10 @@ semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " serde_derive,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " +serde_dynamo,https://github.com/zenlist/serde_dynamo,MIT,Bryan Burgers serde_json,https://github.com/serde-rs/json,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " serde_json_borrow,https://github.com/PSeitz/serde_json_borrow,MIT,Pascal Seitz +serde_path_to_error,https://github.com/dtolnay/path-to-error,MIT OR Apache-2.0,David Tolnay serde_qs,https://github.com/samscott89/serde_qs,MIT OR Apache-2.0,Sam Scott serde_spanned,https://github.com/toml-rs/toml,MIT OR Apache-2.0,The serde_spanned Authors serde_urlencoded,https://github.com/nox/serde_urlencoded,MIT OR Apache-2.0,Anthony Ramine From d41918bfc1e6598290826e57b2a12079234ea224 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Mon, 8 Sep 2025 16:28:30 -0400 Subject: [PATCH 14/19] fix search stream endpoint --- quickwit/Cargo.lock | 1 + quickwit/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 97fa70edd58..74e24e24cc9 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -3769,6 +3769,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "pin-project-lite", + "tokio", ] [[package]] diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index 246d6a7a47d..72b5556dfc2 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -123,7 +123,7 @@ home = "0.5" hostname = "0.3" http = "1.3" http-body = "1.0" -http-body-util = "0.1.3" +http-body-util = { version = "0.1", features = ["channel"] } http-serde = "2.1" humantime = "2.2" hyper = { version = "1.7", features = ["client", "http1", "http2", "server"] } From 5cdbdb8325cec67864d296cea1ba0a3d352e5de7 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 9 Sep 2025 15:03:41 -0400 Subject: [PATCH 15/19] rebase --- LICENSE-3rdparty.csv | 4 +- quickwit/Cargo.lock | 729 +++++++++++++++++++++++++--- quickwit/Cargo.toml | 2 +- quickwit/quickwit-serve/src/rest.rs | 1 - 4 files changed, 673 insertions(+), 63 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index fe008b51c8e..60e1f62a5b3 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -106,7 +106,9 @@ constant_time_eq,https://github.com/cesarb/constant_time_eq,CC0-1.0,Cesar Eduard core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers core-foundation-sys,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers cpufeatures,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers -crc32c,https://github.com/zowens/crc32c,Apache-2.0 OR MIT,Zack Owens +crc,https://github.com/mrhooray/crc-rs,MIT OR Apache-2.0,"Rui Hu , Akhil Velagapudi <4@4khil.com>" +crc-catalog,https://github.com/akhilles/crc-catalog,MIT OR Apache-2.0,Akhil Velagapudi +crc-fast,https://github.com/awesomized/crc-fast-rust,MIT OR Apache-2.0,Don MacAskill crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " criterion-plot,https://github.com/bheisler/criterion.rs,MIT OR Apache-2.0,"Jorge Aparicio , Brook Heisler " cron,https://github.com/zslayton/cron,MIT OR Apache-2.0,Zack Slayton diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 74e24e24cc9..11f9e7d11e4 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -161,8 +161,10 @@ dependencies = [ [[package]] name = "anstream" version = "0.6.20" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -191,28 +193,36 @@ dependencies = [ [[package]] name = "anstyle-query" version = "1.1.4" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ "windows-sys 0.60.2", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" version = "3.0.10" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", "windows-sys 0.60.2", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" version = "1.0.99" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arc-swap" @@ -277,9 +287,13 @@ dependencies = [ [[package]] name = "async-compression" version = "0.4.30" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" +checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" dependencies = [ + "compression-codecs", + "compression-core", "compression-codecs", "compression-core", "futures-core", @@ -301,6 +315,7 @@ dependencies = [ "parking", "polling", "rustix 1.1.1", + "rustix 1.1.1", "slab", "windows-sys 0.60.2", ] @@ -308,9 +323,12 @@ dependencies = [ [[package]] name = "async-lock" version = "3.4.1" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ + "event-listener 5.4.1", "event-listener 5.4.1", "event-listener-strategy", "pin-project-lite", @@ -330,8 +348,10 @@ dependencies = [ "blocking", "cfg-if", "event-listener 5.4.1", + "event-listener 5.4.1", "futures-lite 2.6.1", "rustix 1.1.1", + "rustix 1.1.1", ] [[package]] @@ -346,7 +366,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.1.1", + "rustix 1.1.2", "signal-hook-registry", "slab", "windows-sys 0.60.2", @@ -384,6 +404,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -395,12 +416,15 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" version = "0.1.89" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -427,8 +451,10 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" version = "1.8.6" +version = "1.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bc1b40fb26027769f16960d2f4a6bc20c4bb755d403e552c8c1a73af433c246" +checksum = "8bc1b40fb26027769f16960d2f4a6bc20c4bb755d403e552c8c1a73af433c246" dependencies = [ "aws-credential-types", "aws-runtime", @@ -438,6 +464,11 @@ dependencies = [ "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -457,8 +488,10 @@ dependencies = [ [[package]] name = "aws-credential-types" version = "1.2.6" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" +checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -469,8 +502,10 @@ dependencies = [ [[package]] name = "aws-lc-rs" version = "1.13.3" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" +checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" dependencies = [ "aws-lc-sys", "zeroize", @@ -478,11 +513,11 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" +checksum = "0e44d16778acaf6a9ec9899b92cebd65580b83f685446bf2e1f5d3d732f99dcd" dependencies = [ - "bindgen 0.69.5", + "bindgen", "cc", "cmake", "dunce", @@ -492,14 +527,20 @@ dependencies = [ [[package]] name = "aws-runtime" version = "1.5.10" +version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" +checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", "aws-smithy-http 0.62.3", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -517,8 +558,10 @@ dependencies = [ [[package]] name = "aws-sdk-kinesis" version = "1.88.0" +version = "1.88.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d59431117b456eabf7e27ef9cc0137af9cf880937ce459e3ce9dfdf983328b5" +checksum = "6d59431117b456eabf7e27ef9cc0137af9cf880937ce459e3ce9dfdf983328b5" dependencies = [ "aws-credential-types", "aws-runtime", @@ -526,6 +569,11 @@ dependencies = [ "aws-smithy-eventstream", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -574,14 +622,21 @@ dependencies = [ [[package]] name = "aws-sdk-sqs" version = "1.83.0" +version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b3e9f9a923e6c20272c40de609faa8624b687d203bc77df99ccb86a5de5944b" +checksum = "9b3e9f9a923e6c20272c40de609faa8624b687d203bc77df99ccb86a5de5944b" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -596,14 +651,21 @@ dependencies = [ [[package]] name = "aws-sdk-sso" version = "1.83.0" +version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643cd43af212d2a1c4dedff6f044d7e1961e5d9e7cfe773d70f31d9842413886" +checksum = "643cd43af212d2a1c4dedff6f044d7e1961e5d9e7cfe773d70f31d9842413886" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -618,14 +680,21 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" version = "1.84.0" +version = "1.84.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20ec4a95bd48e0db7a424356a161f8d87bd6a4f0af37204775f0da03d9e39fc3" +checksum = "20ec4a95bd48e0db7a424356a161f8d87bd6a4f0af37204775f0da03d9e39fc3" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -640,14 +709,21 @@ dependencies = [ [[package]] name = "aws-sdk-sts" version = "1.85.0" +version = "1.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "410309ad0df4606bc721aff0d89c3407682845453247213a0ccc5ff8801ee107" +checksum = "410309ad0df4606bc721aff0d89c3407682845453247213a0ccc5ff8801ee107" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", + "aws-smithy-json 0.61.5", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -663,12 +739,18 @@ dependencies = [ [[package]] name = "aws-sigv4" version = "1.3.4" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" +checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", "aws-smithy-http 0.62.3", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime-api", "aws-smithy-types", "bytes", @@ -723,8 +805,10 @@ dependencies = [ [[package]] name = "aws-smithy-eventstream" version = "0.60.11" +version = "0.60.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" +checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" dependencies = [ "aws-smithy-types", "bytes", @@ -754,9 +838,14 @@ dependencies = [ [[package]] name = "aws-smithy-http" +<<<<<<< HEAD +version = "0.62.3" +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) version = "0.62.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" +checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -776,8 +865,10 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" version = "1.1.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" +checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" dependencies = [ "aws-smithy-async", "aws-smithy-protocol-test", @@ -786,25 +877,30 @@ dependencies = [ "bytes", "h2 0.3.27", "h2 0.4.12", + "h2 0.4.12", "http 0.2.12", "http 1.3.1", "http-body 0.4.6", "http-body 1.0.1", "hyper 0.14.32", "hyper 1.7.0", + "hyper 1.7.0", "hyper-rustls 0.24.2", "hyper-rustls 0.27.7", "hyper-util", "indexmap 2.11.1", + "indexmap 2.11.1", "pin-project-lite", "rustls 0.21.12", "rustls 0.23.31", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", "serde_json", "tokio", "tokio-rustls 0.26.2", + "tokio-rustls 0.26.2", "tower 0.5.2", "tracing", ] @@ -820,9 +916,14 @@ dependencies = [ [[package]] name = "aws-smithy-json" +<<<<<<< HEAD +version = "0.61.5" +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) version = "0.61.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" +checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" dependencies = [ "aws-smithy-types", ] @@ -853,6 +954,7 @@ dependencies = [ "roxmltree 0.14.1", "serde_json", "thiserror 2.0.16", + "thiserror 2.0.16", ] [[package]] @@ -868,11 +970,17 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" version = "1.9.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" +checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", "aws-smithy-http 0.62.3", +<<<<<<< HEAD + "aws-smithy-http 0.62.3", +======= +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", @@ -893,8 +1001,10 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" version = "1.9.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" +checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -945,8 +1055,10 @@ dependencies = [ [[package]] name = "aws-types" version = "1.3.8" +version = "1.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" +checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -1133,6 +1245,7 @@ dependencies = [ "quick-xml 0.31.0", "rand 0.8.5", "reqwest 0.12.23", + "reqwest 0.12.23", "rustc_version", "serde", "serde_json", @@ -1223,8 +1336,10 @@ dependencies = [ [[package]] name = "backon" version = "1.5.2" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" +checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" dependencies = [ "fastrand 2.3.0", "gloo-timers", @@ -1267,8 +1382,10 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base62" version = "2.2.2" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0104d4d8d15e458f21dcd027ea350bf38e4364954909402f4da075aca8d0f136" +checksum = "0104d4d8d15e458f21dcd027ea350bf38e4364954909402f4da075aca8d0f136" dependencies = [ "rustversion", ] @@ -1323,6 +1440,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ "bitflags 2.9.4", + "bitflags 2.9.4", +======= + "bitflags 2.9.3", +>>>>>>> d16cf54c (upgrade warp) "cexpr", "clang-sys", "itertools 0.12.1", @@ -1336,25 +1457,32 @@ dependencies = [ "rustc-hash 1.1.0", "shlex", "syn 2.0.106", + "syn 2.0.106", "which", ] [[package]] name = "bindgen" version = "0.72.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.13.0", + "log", + "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash 2.1.1", + "rustc-hash", "shlex", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -1368,7 +1496,7 @@ dependencies = [ "miniserde", "peakmem-alloc", "perf-event", - "rustc-hash 2.1.1", + "rustc-hash", "rustop", "unicode-width 0.1.14", "yansi", @@ -1398,8 +1526,10 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" version = "2.9.4" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -1459,8 +1589,10 @@ dependencies = [ [[package]] name = "bon" version = "3.7.2" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" +checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" dependencies = [ "bon-macros", "rustversion", @@ -1469,9 +1601,12 @@ dependencies = [ [[package]] name = "bon-macros" version = "3.7.2" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" +checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" dependencies = [ + "darling 0.21.3", "darling 0.21.3", "ident_case", "prettyplease", @@ -1479,6 +1614,7 @@ dependencies = [ "quote", "rustversion", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -1502,6 +1638,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -1559,8 +1696,10 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" version = "1.23.2" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "byteorder" @@ -1662,9 +1801,12 @@ dependencies = [ [[package]] name = "cc" version = "1.2.36" +version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ + "find-msvc-tools", "find-msvc-tools", "jobserver", "libc", @@ -1698,8 +1840,10 @@ dependencies = [ [[package]] name = "cfg-if" version = "1.0.3" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -1752,6 +1896,7 @@ dependencies = [ "itertools 0.14.0", "lru 0.13.0", "rand 0.9.2", + "rand 0.9.2", "serde", "tokio", "tokio-stream", @@ -1762,8 +1907,10 @@ dependencies = [ [[package]] name = "chrono" version = "0.4.42" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", "js-sys", @@ -1771,6 +1918,7 @@ dependencies = [ "serde", "wasm-bindgen", "windows-link 0.2.0", + "windows-link 0.2.0", ] [[package]] @@ -1852,8 +2000,10 @@ dependencies = [ [[package]] name = "clap" version = "4.5.47" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", ] @@ -1861,8 +2011,10 @@ dependencies = [ [[package]] name = "clap_builder" version = "4.5.47" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -1914,6 +2066,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ "thiserror 2.0.16", + "thiserror 2.0.16", ] [[package]] @@ -1975,6 +2128,25 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" +[[package]] +name = "compression-codecs" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" +dependencies = [ + "compression-core", + "flate2", + "memchr", + "zstd 0.13.3", + "zstd-safe 7.2.4", +] + +[[package]] +name = "compression-core" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -2324,8 +2496,10 @@ dependencies = [ [[package]] name = "curve25519-dalek" version = "4.1.3" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", @@ -2346,6 +2520,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -2358,6 +2533,18 @@ dependencies = [ "darling_macro 0.20.11", ] +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + [[package]] name = "darling" version = "0.21.3" @@ -2382,6 +2569,21 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.106", + "syn 2.0.106", +] + [[package]] name = "darling_core" version = "0.21.3" @@ -2403,8 +2605,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", + "darling_core 0.20.11", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -2427,8 +2642,10 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-url" version = "0.3.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" +checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "dbl" @@ -2442,11 +2659,14 @@ dependencies = [ [[package]] name = "deadpool" version = "0.12.3" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b" +checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b" dependencies = [ "deadpool-runtime", "lazy_static", + "lazy_static", "num_cpus", "tokio", ] @@ -2490,8 +2710,10 @@ dependencies = [ [[package]] name = "deranged" version = "0.5.3" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -2508,6 +2730,7 @@ dependencies = [ "quote", "rustc_version", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -2555,18 +2778,23 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] name = "dns-lookup" version = "2.1.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf5597a4b7fe5275fc9dcf88ce26326bc8e4cb87d0130f33752d4c5f717793cf" +checksum = "cf5597a4b7fe5275fc9dcf88ce26326bc8e4cb87d0130f33752d4c5f717793cf" dependencies = [ "cfg-if", "libc", "socket2 0.6.0", "windows-sys 0.60.2", + "socket2 0.6.0", + "windows-sys 0.60.2", ] [[package]] @@ -2608,8 +2836,10 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" version = "2.0.2" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "dtoa" @@ -2638,8 +2868,10 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" version = "1.0.20" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -2874,12 +3106,15 @@ dependencies = [ [[package]] name = "enum-iterator-derive" version = "1.5.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -2904,11 +3139,14 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" version = "0.3.14" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys 0.61.0", + "windows-sys 0.61.0", ] [[package]] @@ -2931,8 +3169,10 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" version = "5.4.1" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -2945,6 +3185,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ + "event-listener 5.4.1", "event-listener 5.4.1", "pin-project-lite", ] @@ -2969,6 +3210,8 @@ dependencies = [ "bit-set", "regex-automata", "regex-syntax", + "regex-automata", + "regex-syntax", ] [[package]] @@ -3015,19 +3258,24 @@ dependencies = [ [[package]] name = "fiat-crypto" version = "0.2.9" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" version = "0.2.26" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", "windows-sys 0.60.2", + "windows-sys 0.60.2", ] [[package]] @@ -3036,6 +3284,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + [[package]] name = "findshlibs" version = "0.10.2" @@ -3124,8 +3378,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" version = "1.2.2" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -3264,6 +3520,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -3305,8 +3562,10 @@ dependencies = [ [[package]] name = "generator" version = "0.8.7" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", @@ -3362,6 +3621,7 @@ dependencies = [ "libc", "r-efi", "wasi 0.14.4+wasi-0.2.4", + "wasi 0.14.4+wasi-0.2.4", "wasm-bindgen", ] @@ -3374,8 +3634,10 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" version = "0.3.3" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gloo-timers" @@ -3480,8 +3742,10 @@ dependencies = [ [[package]] name = "grok" version = "2.4.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e2d7bd791814b06a609b74361ac35b448eb4718548937c6de718554a4348577" +checksum = "2e2d7bd791814b06a609b74361ac35b448eb4718548937c6de718554a4348577" dependencies = [ "glob", "onig", @@ -3522,6 +3786,7 @@ dependencies = [ "futures-util", "http 0.2.12", "indexmap 2.11.1", + "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -3531,8 +3796,10 @@ dependencies = [ [[package]] name = "h2" version = "0.4.12" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -3541,6 +3808,7 @@ dependencies = [ "futures-sink", "http 1.3.1", "indexmap 2.11.1", + "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -3579,8 +3847,10 @@ dependencies = [ [[package]] name = "hashbrown" version = "0.15.5" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -3707,6 +3977,7 @@ dependencies = [ "cfg-if", "libc", "windows-link 0.1.3", + "windows-link 0.1.3", ] [[package]] @@ -3772,16 +4043,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "http-serde" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" -dependencies = [ - "http 1.3.1", - "serde", -] - [[package]] name = "http-types" version = "2.12.0" @@ -3838,6 +4099,7 @@ dependencies = [ "itoa", "pin-project-lite", "socket2 0.5.10", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -3847,14 +4109,19 @@ dependencies = [ [[package]] name = "hyper" version = "1.7.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "atomic-waker", "bytes", "futures-channel", "futures-core", "h2 0.4.12", + "futures-core", + "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "httparse", @@ -3862,6 +4129,7 @@ dependencies = [ "itoa", "pin-project-lite", "pin-utils", + "pin-utils", "smallvec", "tokio", "want", @@ -3891,15 +4159,18 @@ checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.3.1", "hyper 1.7.0", + "hyper 1.7.0", "hyper-util", "log", "rustls 0.23.31", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", "tower-service", "webpki-roots 1.0.2", + "webpki-roots 1.0.2", ] [[package]] @@ -3920,6 +4191,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ + "hyper 1.7.0", "hyper 1.7.0", "hyper-util", "pin-project-lite", @@ -3949,6 +4221,7 @@ dependencies = [ "bytes", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -3959,8 +4232,10 @@ dependencies = [ [[package]] name = "hyper-util" version = "0.1.16" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -3970,11 +4245,13 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.7.0", + "hyper 1.7.0", "ipnet", "libc", "percent-encoding", "pin-project-lite", "socket2 0.6.0", + "socket2 0.6.0", "system-configuration 0.6.1", "tokio", "tower-service", @@ -4110,8 +4387,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" version = "1.1.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4142,11 +4421,14 @@ dependencies = [ [[package]] name = "indexmap" version = "2.11.1" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", "hashbrown 0.15.5", + "hashbrown 0.15.5", "serde", ] @@ -4183,6 +4465,7 @@ checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash 0.8.12", "indexmap 2.11.1", + "indexmap 2.11.1", "is-terminal", "itoa", "log", @@ -4215,6 +4498,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -4242,9 +4526,12 @@ dependencies = [ [[package]] name = "io-uring" version = "0.7.10" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "cfg-if", "libc", @@ -4301,15 +4588,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -4337,8 +4615,10 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" version = "0.1.34" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -4347,8 +4627,10 @@ dependencies = [ [[package]] name = "js-sys" version = "0.3.78" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -4421,6 +4703,7 @@ dependencies = [ "petgraph", "regex", "regex-syntax", + "regex-syntax", "sha3", "string_cache", "term", @@ -4434,6 +4717,7 @@ version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5baa5e9ff84f1aefd264e6869907646538a52147a755d494517a8007fb48733" dependencies = [ + "regex-automata", "regex-automata", "rustversion", ] @@ -4523,12 +4807,6 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "levenshtein_automata" version = "0.2.1" @@ -4538,8 +4816,10 @@ checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25" [[package]] name = "libc" version = "0.2.175" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" @@ -4549,6 +4829,7 @@ checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", "windows-targets 0.53.3", + "windows-targets 0.53.3", ] [[package]] @@ -4560,12 +4841,16 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" version = "0.1.9" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "libc", "redox_syscall 0.5.17", + "redox_syscall 0.5.17", ] [[package]] @@ -4830,12 +5115,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" - [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -4861,8 +5140,10 @@ dependencies = [ [[package]] name = "log" version = "0.4.28" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "loom" @@ -4884,6 +5165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ "hashbrown 0.15.5", + "hashbrown 0.15.5", ] [[package]] @@ -4893,6 +5175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" dependencies = [ "hashbrown 0.15.5", + "hashbrown 0.15.5", ] [[package]] @@ -4935,10 +5218,13 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "matchers" version = "0.2.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ "regex-automata", + "regex-automata", ] [[package]] @@ -4993,8 +5279,10 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" version = "0.9.8" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -5024,6 +5312,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -5101,6 +5390,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "event-listener 5.4.1", + "event-listener 5.4.1", "futures-util", "loom", "parking_lot 0.12.4", @@ -5224,10 +5514,13 @@ dependencies = [ [[package]] name = "nu-ansi-term" version = "0.50.1" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ "windows-sys 0.52.0", + "windows-sys 0.52.0", ] [[package]] @@ -5353,6 +5646,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -5365,6 +5659,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -5385,8 +5680,10 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "numfmt" version = "1.2.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1a14c0c3b00c5b3f3ab9625c35601c5cac06a94bb6b17c27327a8f1d520c6" +checksum = "8ea1a14c0c3b00c5b3f3ab9625c35601c5cac06a94bb6b17c27327a8f1d520c6" dependencies = [ "dtoa", "itoa", @@ -5465,6 +5762,7 @@ version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "libc", "once_cell", @@ -5515,6 +5813,7 @@ dependencies = [ "quick-xml 0.37.5", "reqsign", "reqwest 0.12.23", + "reqwest 0.12.23", "serde", "serde_json", "tokio", @@ -5559,6 +5858,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "cfg-if", "foreign-types", @@ -5577,6 +5877,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -5588,8 +5889,10 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" version = "300.5.2+3.5.2" +version = "300.5.2+3.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" +checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" dependencies = [ "cc", ] @@ -5738,6 +6041,7 @@ dependencies = [ "proc-macro2-diagnostics", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -5852,6 +6156,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.5.17", + "redox_syscall 0.5.17", "smallvec", "windows-targets 0.52.6", ] @@ -5944,8 +6249,10 @@ dependencies = [ [[package]] name = "percent-encoding" version = "2.3.2" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf-event" @@ -5974,6 +6281,7 @@ checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror 2.0.16", + "thiserror 2.0.16", "ucd-trie", ] @@ -5998,6 +6306,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -6018,6 +6327,7 @@ checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", "indexmap 2.11.1", + "indexmap 2.11.1", ] [[package]] @@ -6065,6 +6375,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -6273,7 +6584,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.1", + "rustix 1.1.2", "windows-sys 0.60.2", ] @@ -6297,8 +6608,10 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "postcard" version = "1.1.3" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" dependencies = [ "cobs", "embedded-io 0.4.0", @@ -6309,8 +6622,10 @@ dependencies = [ [[package]] name = "potential_utf" version = "0.1.3" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -6414,11 +6729,14 @@ dependencies = [ [[package]] name = "prettyplease" version = "0.2.37" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -6476,8 +6794,10 @@ dependencies = [ [[package]] name = "proc-macro2" version = "1.0.101" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -6491,6 +6811,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "version_check", "yansi", ] @@ -6501,6 +6822,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "hex", "lazy_static", @@ -6514,6 +6836,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "hex", ] @@ -6544,12 +6867,15 @@ dependencies = [ "bit-set", "bit-vec", "bitflags 2.9.4", + "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", + "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -6592,6 +6918,7 @@ dependencies = [ "prost-types 0.13.5", "regex", "syn 2.0.106", + "syn 2.0.106", "tempfile", ] @@ -6619,6 +6946,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -6659,8 +6987,10 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psl" version = "2.1.140" +version = "2.1.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a33878b44e45231ecbc8c619cc8059e4adab882b25812192676fe08dcf352f" +checksum = "89a33878b44e45231ecbc8c619cc8059e4adab882b25812192676fe08dcf352f" dependencies = [ "psl-types", ] @@ -6800,6 +7130,7 @@ dependencies = [ "serde_json", "sync_wrapper 1.0.2", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -6820,6 +7151,7 @@ dependencies = [ "futures", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "quickwit-common", "tokio", @@ -6869,6 +7201,7 @@ dependencies = [ "tabled", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "thousands", "tikv-jemalloc-ctl", "tikv-jemallocator", @@ -6919,6 +7252,7 @@ dependencies = [ "quote", "serde", "syn 2.0.106", + "syn 2.0.106", "tonic-build", ] @@ -6939,6 +7273,7 @@ dependencies = [ "quickwit-proto", "serde", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tokio-stream", "tonic 0.13.1", @@ -6964,6 +7299,7 @@ dependencies = [ "hostname 0.3.1", "http 1.3.1", "hyper 1.7.0", + "hyper 1.7.0", "hyper-util", "itertools 0.14.0", "once_cell", @@ -6981,6 +7317,7 @@ dependencies = [ "sysinfo", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "tikv-jemalloc-ctl", "tikv-jemallocator", "tokio", @@ -7097,6 +7434,7 @@ dependencies = [ "fnv", "hex", "indexmap 2.11.1", + "indexmap 2.11.1", "itertools 0.14.0", "matches", "nom", @@ -7114,6 +7452,7 @@ dependencies = [ "siphasher", "tantivy", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tracing", "utoipa", @@ -7134,6 +7473,7 @@ dependencies = [ "quickwit-proto", "quickwit-storage", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tracing", @@ -7188,11 +7528,13 @@ dependencies = [ "rdkafka", "regex", "reqwest 0.12.23", + "reqwest 0.12.23", "serde", "serde_json", "tantivy", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tracing", @@ -7232,6 +7574,7 @@ dependencies = [ "serde_json_borrow", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tonic 0.13.1", "tower 0.5.2", @@ -7248,6 +7591,7 @@ dependencies = [ "aws-sdk-sqs", "futures-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-util", "itertools 0.14.0", "quickwit-actors", @@ -7263,7 +7607,6 @@ dependencies = [ "quickwit-storage", "rand 0.8.5", "reqwest 0.12.23", - "rustls 0.23.31", "serde_json", "tempfile", "tokio", @@ -7331,6 +7674,7 @@ dependencies = [ "tantivy", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tracing", @@ -7393,6 +7737,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -7421,6 +7766,7 @@ dependencies = [ "rand 0.8.5", "regex", "regex-syntax", + "regex-syntax", "sea-query", "sea-query-binder", "serde", @@ -7430,6 +7776,7 @@ dependencies = [ "sqlx", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tokio-stream", @@ -7457,6 +7804,7 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tonic 0.13.1", @@ -7488,6 +7836,7 @@ dependencies = [ "serde_json", "sqlx", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tonic 0.13.1", "tonic-build", @@ -7515,13 +7864,14 @@ dependencies = [ "quickwit-common", "quickwit-datetime", "regex", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "serde_json", "serde_with", "tantivy", "tantivy-fst", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "whichlang", ] @@ -7543,11 +7893,13 @@ dependencies = [ "quickwit-search", "quickwit-serve", "reqwest 0.12.23", + "reqwest 0.12.23", "reqwest-middleware", "reqwest-retry", "serde", "serde_json", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tracing", "wiremock", @@ -7591,6 +7943,7 @@ dependencies = [ "tantivy", "tantivy-fst", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -7622,6 +7975,7 @@ dependencies = [ "http-serde", "humantime", "hyper 1.7.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", "itertools 0.14.0", @@ -7661,6 +8015,7 @@ dependencies = [ "serde_with", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "tokio", "tokio-rustls 0.26.2", @@ -7699,6 +8054,7 @@ dependencies = [ "futures", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "lru 0.13.0", "md5", "mockall", @@ -7714,11 +8070,13 @@ dependencies = [ "regex", "reqsign", "reqwest 0.12.23", + "reqwest 0.12.23", "serde", "serde_json", "tantivy", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7738,6 +8096,7 @@ dependencies = [ "once_cell", "quickwit-common", "reqwest 0.12.23", + "reqwest 0.12.23", "serde", "serde_json", "tokio", @@ -7749,15 +8108,20 @@ dependencies = [ [[package]] name = "quinn" version = "0.11.9" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", + "rustc-hash", + "rustls 0.23.31", + "socket2 0.6.0", + "thiserror 2.0.16", "rustls 0.23.31", "socket2 0.6.0", "thiserror 2.0.16", @@ -7769,19 +8133,24 @@ dependencies = [ [[package]] name = "quinn-proto" version = "0.11.13" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", "rand 0.9.2", + "rand 0.9.2", "ring 0.17.14", "rustc-hash 2.1.1", "rustls 0.23.31", + "rustls 0.23.31", "rustls-pki-types", "slab", "thiserror 2.0.16", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -7790,15 +8159,19 @@ dependencies = [ [[package]] name = "quinn-udp" version = "0.5.14" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2 0.6.0", + "socket2 0.6.0", "tracing", "windows-sys 0.60.2", + "windows-sys 0.60.2", ] [[package]] @@ -7855,8 +8228,10 @@ dependencies = [ [[package]] name = "rand" version = "0.9.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -7950,8 +8325,10 @@ dependencies = [ [[package]] name = "rayon" version = "1.11.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -7960,8 +8337,10 @@ dependencies = [ [[package]] name = "rayon-core" version = "1.13.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -8013,10 +8392,13 @@ dependencies = [ [[package]] name = "redox_syscall" version = "0.5.17" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags 2.9.4", + "bitflags 2.9.4", ] [[package]] @@ -8037,42 +8419,54 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] name = "regex" version = "1.11.2" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.10" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", "regex-syntax", + "regex-syntax", ] [[package]] name = "regex-lite" version = "0.1.7" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" +checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" [[package]] name = "regex-syntax" version = "0.8.6" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rend" @@ -8104,6 +8498,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "reqwest 0.12.23", + "reqwest 0.12.23", "rsa", "serde", "serde_json", @@ -8158,8 +8553,10 @@ dependencies = [ [[package]] name = "reqwest" version = "0.12.23" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -8170,6 +8567,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-tls 0.6.0", "hyper-util", @@ -8199,6 +8597,7 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots 1.0.2", + "webpki-roots 1.0.2", ] [[package]] @@ -8211,6 +8610,7 @@ dependencies = [ "async-trait", "http 1.3.1", "reqwest 0.12.23", + "reqwest 0.12.23", "serde", "thiserror 1.0.69", "tower-service", @@ -8228,8 +8628,10 @@ dependencies = [ "getrandom 0.2.16", "http 1.3.1", "hyper 1.7.0", + "hyper 1.7.0", "parking_lot 0.11.2", "reqwest 0.12.23", + "reqwest 0.12.23", "reqwest-middleware", "retry-policies", "thiserror 1.0.69", @@ -8392,6 +8794,7 @@ dependencies = [ "quote", "rust-embed-utils", "syn 2.0.106", + "syn 2.0.106", "walkdir", ] @@ -8434,8 +8837,10 @@ dependencies = [ [[package]] name = "rustc-demangle" version = "0.1.26" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -8464,6 +8869,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "errno", "libc", @@ -8473,15 +8879,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9621e389a110cae094269936383d69b869492f03e5c1ed2d575a53c029d4441d" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.11.0", - "linux-raw-sys 0.9.4", "windows-sys 0.61.0", ] @@ -8500,8 +8906,10 @@ dependencies = [ [[package]] name = "rustls" version = "0.23.31" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "aws-lc-rs", "log", @@ -8535,6 +8943,7 @@ dependencies = [ "rustls-pki-types", "schannel", "security-framework 3.4.0", + "security-framework 3.4.0", ] [[package]] @@ -8606,8 +9015,10 @@ checksum = "0b5a6a926633a8ce739286680df905e1d1d01db609fc0e09d28e9b901ac7b22f" [[package]] name = "rustversion" version = "1.0.22" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -8660,8 +9071,10 @@ dependencies = [ [[package]] name = "scc" version = "2.4.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" +checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" dependencies = [ "sdd", ] @@ -8669,10 +9082,13 @@ dependencies = [ [[package]] name = "schannel" version = "0.1.28" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ "windows-sys 0.61.0", + "windows-sys 0.61.0", ] [[package]] @@ -8735,8 +9151,10 @@ dependencies = [ [[package]] name = "sdd" version = "3.0.10" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" +checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" [[package]] name = "sea-query" @@ -8764,12 +9182,15 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bae0cbad6ab996955664982739354128c58d16e126114fe88c2a493642502aab" dependencies = [ + "darling 0.20.11", "darling 0.20.11", "heck 0.4.1", "proc-macro2", "quote", "syn 2.0.106", "thiserror 2.0.16", + "syn 2.0.106", + "thiserror 2.0.16", ] [[package]] @@ -8812,6 +9233,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", @@ -8822,9 +9244,12 @@ dependencies = [ [[package]] name = "security-framework" version = "3.4.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", @@ -8835,8 +9260,10 @@ dependencies = [ [[package]] name = "security-framework-sys" version = "2.15.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -8897,9 +9324,12 @@ dependencies = [ [[package]] name = "serde_json" version = "1.0.143" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ + "indexmap 2.11.1", "indexmap 2.11.1", "itoa", "memchr", @@ -8990,6 +9420,7 @@ dependencies = [ "hex", "indexmap 1.9.3", "indexmap 2.11.1", + "indexmap 2.11.1", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -9005,10 +9436,12 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ + "darling 0.20.11", "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -9017,6 +9450,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ + "indexmap 2.11.1", "indexmap 2.11.1", "itoa", "ryu", @@ -9048,6 +9482,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -9149,8 +9584,10 @@ dependencies = [ [[package]] name = "signal-hook-registry" version = "1.4.6" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -9190,6 +9627,7 @@ dependencies = [ "num-bigint", "num-traits", "thiserror 2.0.16", + "thiserror 2.0.16", "time", ] @@ -9211,8 +9649,10 @@ dependencies = [ [[package]] name = "slab" version = "0.4.11" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -9233,10 +9673,13 @@ dependencies = [ [[package]] name = "snafu" version = "0.8.9" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" +checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ "snafu-derive 0.8.9", + "snafu-derive 0.8.9", ] [[package]] @@ -9254,13 +9697,16 @@ dependencies = [ [[package]] name = "snafu-derive" version = "0.8.9" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" +checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -9289,6 +9735,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -9369,6 +9825,7 @@ dependencies = [ "hashlink", "hex", "indexmap 2.11.1", + "indexmap 2.11.1", "log", "memchr", "once_cell", @@ -9438,6 +9895,7 @@ dependencies = [ "atoi", "base64 0.21.7", "bitflags 2.9.4", + "bitflags 2.9.4", "byteorder", "bytes", "crc", @@ -9481,6 +9939,7 @@ dependencies = [ "atoi", "base64 0.21.7", "bitflags 2.9.4", + "bitflags 2.9.4", "byteorder", "crc", "dotenvy", @@ -9600,8 +10059,10 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" version = "12.16.2" +version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" +checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" dependencies = [ "debugid", "memmap2", @@ -9612,8 +10073,10 @@ dependencies = [ [[package]] name = "symbolic-demangle" version = "12.16.2" +version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" +checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -9634,8 +10097,10 @@ dependencies = [ [[package]] name = "syn" version = "2.0.106" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -9666,6 +10131,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -9709,6 +10175,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ + "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", @@ -9800,7 +10267,7 @@ dependencies = [ "rayon", "regex", "rust-stemmers", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "serde_json", "sketches-ddsketch", @@ -9815,6 +10282,7 @@ dependencies = [ "tantivy-tokenizer-api", "tempfile", "thiserror 2.0.16", + "thiserror 2.0.16", "time", "uuid", "winapi 0.3.9", @@ -9864,6 +10332,7 @@ checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18" dependencies = [ "byteorder", "regex-syntax", + "regex-syntax", "utf8-ranges", ] @@ -9926,23 +10395,28 @@ dependencies = [ [[package]] name = "tempfile" version = "3.21.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand 2.3.0", "getrandom 0.3.3", "once_cell", - "rustix 1.1.1", - "windows-sys 0.60.2", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] name = "term" version = "1.2.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" +checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" dependencies = [ "windows-sys 0.61.0", + "windows-sys 0.61.0", ] [[package]] @@ -9972,10 +10446,13 @@ dependencies = [ [[package]] name = "thiserror" version = "2.0.16" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ "thiserror-impl 2.0.16", + "thiserror-impl 2.0.16", ] [[package]] @@ -9987,17 +10464,21 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" version = "2.0.16" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -10049,8 +10530,10 @@ dependencies = [ [[package]] name = "time" version = "0.3.43" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", "js-sys", @@ -10066,8 +10549,10 @@ dependencies = [ [[package]] name = "time-core" version = "0.1.6" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-fmt" @@ -10082,8 +10567,10 @@ dependencies = [ [[package]] name = "time-macros" version = "0.2.24" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -10112,8 +10599,10 @@ dependencies = [ [[package]] name = "tinyvec" version = "1.10.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -10127,8 +10616,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" version = "1.47.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -10140,16 +10631,20 @@ dependencies = [ "signal-hook-registry", "slab", "socket2 0.6.0", + "socket2 0.6.0", "tokio-macros", "tracing", "windows-sys 0.59.0", + "windows-sys 0.59.0", ] [[package]] name = "tokio-io-timeout" version = "1.2.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" +checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" dependencies = [ "pin-project-lite", "tokio", @@ -10164,6 +10659,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -10215,6 +10711,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ + "rustls 0.23.31", "rustls 0.23.31", "tokio", ] @@ -10234,8 +10731,10 @@ dependencies = [ [[package]] name = "tokio-util" version = "0.7.16" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -10243,6 +10742,7 @@ dependencies = [ "futures-sink", "futures-util", "hashbrown 0.15.5", + "hashbrown 0.15.5", "pin-project-lite", "slab", "tokio", @@ -10275,6 +10775,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ + "indexmap 2.11.1", "indexmap 2.11.1", "serde", "serde_spanned", @@ -10288,9 +10789,11 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ + "indexmap 2.11.1", "indexmap 2.11.1", "toml_datetime", "winnow 0.7.13", + "winnow 0.7.13", ] [[package]] @@ -10338,16 +10841,19 @@ dependencies = [ "base64 0.22.1", "bytes", "h2 0.4.12", + "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-timeout 0.5.2", "hyper-util", "percent-encoding", "pin-project", "prost 0.13.5", "socket2 0.5.10", + "socket2 0.5.10", "tokio", "tokio-stream", "tower 0.4.13", @@ -10368,10 +10874,12 @@ dependencies = [ "bytes", "flate2", "h2 0.4.12", + "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-timeout 0.5.2", "hyper-util", "percent-encoding", @@ -10379,6 +10887,7 @@ dependencies = [ "prost 0.13.5", "rustls-native-certs 0.8.1", "socket2 0.5.10", + "socket2 0.5.10", "tokio", "tokio-rustls 0.26.2", "tokio-stream", @@ -10401,6 +10910,7 @@ dependencies = [ "prost-types 0.13.5", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -10457,6 +10967,7 @@ dependencies = [ "futures-core", "futures-util", "indexmap 2.11.1", + "indexmap 2.11.1", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -10469,12 +10980,14 @@ dependencies = [ [[package]] name = "tower-http" +<<<<<<< HEAD version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "bitflags 2.9.4", + "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -10490,12 +11003,17 @@ dependencies = [ [[package]] name = "tower-http" +======= +>>>>>>> a5ece5ef (fixes) version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ + "async-compression", + "bitflags 2.9.4", "bitflags 2.9.4", "bytes", + "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", @@ -10541,6 +11059,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -10595,13 +11114,16 @@ dependencies = [ [[package]] name = "tracing-subscriber" version = "0.3.20" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex-automata", + "regex-automata", "serde", "serde_json", "sharded-slab", @@ -10670,6 +11192,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ + "rand 0.9.2", "rand 0.9.2", "serde", "web-time", @@ -10775,8 +11298,10 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" version = "2.5.7" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -10830,6 +11355,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ + "indexmap 2.11.1", "indexmap 2.11.1", "serde", "serde_json", @@ -10846,18 +11372,22 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "ulid", ] [[package]] name = "uuid" version = "1.18.1" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", "rand 0.9.2", + "rand 0.9.2", "serde", "wasm-bindgen", ] @@ -10923,6 +11453,7 @@ dependencies = [ "iana-time-zone", "idna", "indexmap 2.11.1", + "indexmap 2.11.1", "indoc", "influxdb-line-protocol", "itertools 0.14.0", @@ -10957,11 +11488,13 @@ dependencies = [ "sha3", "simdutf8", "snafu 0.8.9", + "snafu 0.8.9", "snap", "strip-ansi-escapes", "syslog_loose", "termcolor", "thiserror 2.0.16", + "thiserror 2.0.16", "tokio", "tracing", "uaparser", @@ -11089,10 +11622,13 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" version = "0.14.4+wasi-0.2.4" +version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ "wit-bindgen", + "wit-bindgen", ] [[package]] @@ -11113,35 +11649,43 @@ dependencies = [ [[package]] name = "wasm-bindgen" version = "0.2.101" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", "wasm-bindgen-shared", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" version = "0.2.101" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" version = "0.4.51" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -11153,8 +11697,10 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" version = "0.2.101" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11163,12 +11709,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" version = "0.2.101" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11176,8 +11725,10 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" version = "0.2.101" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -11213,8 +11764,10 @@ dependencies = [ [[package]] name = "web-sys" version = "0.3.78" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -11248,24 +11801,14 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" version = "1.0.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - [[package]] name = "whichlang" version = "0.1.1" @@ -11275,9 +11818,12 @@ checksum = "0b9aa3ad29c3d08283ac6b769e3ec15ad1ddb88af7d2e9bc402c574973b937e7" [[package]] name = "whoami" version = "1.6.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ + "libredox", "libredox", "wasite", ] @@ -11313,10 +11859,13 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.11" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ "windows-sys 0.61.0", + "windows-sys 0.61.0", ] [[package]] @@ -11345,6 +11894,7 @@ dependencies = [ "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", + "windows-link 0.1.3", "windows-numerics", ] @@ -11378,6 +11928,7 @@ dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", "windows-link 0.1.3", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings", ] @@ -11390,6 +11941,7 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", + "windows-link 0.1.3", "windows-threading", ] @@ -11402,6 +11954,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -11413,6 +11966,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -11424,6 +11978,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -11435,6 +11990,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -11449,6 +12005,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -11457,6 +12019,7 @@ checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", + "windows-link 0.1.3", ] [[package]] @@ -11465,6 +12028,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ + "windows-link 0.1.3", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings", @@ -11486,6 +12050,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link 0.1.3", + "windows-link 0.1.3", ] [[package]] @@ -11495,6 +12060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link 0.1.3", + "windows-link 0.1.3", ] [[package]] @@ -11533,6 +12099,16 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", + "windows-targets 0.53.3", +] + [[package]] name = "windows-sys" version = "0.61.0" @@ -11576,9 +12152,12 @@ dependencies = [ [[package]] name = "windows-targets" version = "0.53.3" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link 0.1.3", "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -11597,6 +12176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ "windows-link 0.1.3", + "windows-link 0.1.3", ] [[package]] @@ -11749,8 +12329,10 @@ dependencies = [ [[package]] name = "winnow" version = "0.7.13" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -11768,8 +12350,10 @@ dependencies = [ [[package]] name = "wiremock" version = "0.6.5" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031" +checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031" dependencies = [ "assert-json-diff", "base64 0.22.1", @@ -11778,6 +12362,7 @@ dependencies = [ "http 1.3.1", "http-body-util", "hyper 1.7.0", + "hyper 1.7.0", "hyper-util", "log", "once_cell", @@ -11791,8 +12376,11 @@ dependencies = [ [[package]] name = "wit-bindgen" version = "0.45.1" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "woothee" @@ -11826,7 +12414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.1.1", + "rustix 1.1.2", ] [[package]] @@ -11871,14 +12459,17 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "synstructure", ] [[package]] name = "zerocopy" version = "0.8.27" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] @@ -11886,12 +12477,15 @@ dependencies = [ [[package]] name = "zerocopy-derive" version = "0.8.27" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -11912,6 +12506,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", "synstructure", ] @@ -11935,8 +12530,10 @@ dependencies = [ [[package]] name = "zerovec" version = "0.11.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -11952,6 +12549,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", + "syn 2.0.106", ] [[package]] @@ -12014,10 +12612,21 @@ dependencies = [ [[package]] name = "zstd-sys" version = "2.0.16+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ +<<<<<<< HEAD + "bindgen 0.72.1", + "bindgen 0.72.1", +======= +<<<<<<< HEAD + "bindgen", +======= "bindgen 0.72.1", +>>>>>>> ba7b6abd (aws-sdk-s3 back to 1.62) +>>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "cc", "pkg-config", ] diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index 72b5556dfc2..cc1f181d196 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -123,7 +123,7 @@ home = "0.5" hostname = "0.3" http = "1.3" http-body = "1.0" -http-body-util = { version = "0.1", features = ["channel"] } +http-body-util = "0.1" http-serde = "2.1" humantime = "2.2" hyper = { version = "1.7", features = ["client", "http1", "http2", "server"] } diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 543b2d0b617..e0e8e637f6b 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -528,7 +528,6 @@ mod tls { let certfile = fs::File::open(filename) .map_err(|error| io_error(format!("failed to open {filename}: {error}")))?; let mut reader = io::BufReader::new(certfile); - // Load and return certificate. rustls_pemfile::certs(&mut reader).collect() } From dfb6a4eae7d41634e80fb63c87ad15fa7f6b0522 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 9 Sep 2025 15:09:35 -0400 Subject: [PATCH 16/19] license --- LICENSE-3rdparty.csv | 15 +- quickwit/Cargo.lock | 886 +------------------------------------------ 2 files changed, 20 insertions(+), 881 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 60e1f62a5b3..9e1bab93930 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -50,7 +50,6 @@ aws-smithy-runtime-api,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS aws-smithy-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " aws-smithy-xml,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " aws-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " -aws_lambda_events,https://github.com/awslabs/aws-lambda-rust-runtime,MIT,"Christian Legnitto , Sam Rijs , David Calavera " axum,https://github.com/tokio-rs/axum,MIT,The axum Authors axum-core,https://github.com/tokio-rs/axum,MIT,The axum-core Authors backtrace,https://github.com/rust-lang/backtrace-rs,MIT OR Apache-2.0,The Rust Project Developers @@ -106,9 +105,7 @@ constant_time_eq,https://github.com/cesarb/constant_time_eq,CC0-1.0,Cesar Eduard core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers core-foundation-sys,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers cpufeatures,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers -crc,https://github.com/mrhooray/crc-rs,MIT OR Apache-2.0,"Rui Hu , Akhil Velagapudi <4@4khil.com>" -crc-catalog,https://github.com/akhilles/crc-catalog,MIT OR Apache-2.0,Akhil Velagapudi -crc-fast,https://github.com/awesomized/crc-fast-rust,MIT OR Apache-2.0,Don MacAskill +crc32c,https://github.com/zowens/crc32c,Apache-2.0 OR MIT,Zack Owens crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " criterion-plot,https://github.com/bheisler/criterion.rs,MIT OR Apache-2.0,"Jorge Aparicio , Brook Heisler " cron,https://github.com/zslayton/cron,MIT OR Apache-2.0,Zack Slayton @@ -243,11 +240,7 @@ itoa,https://github.com/dtolnay/itoa,MIT OR Apache-2.0,David Tolnay js-sys,https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/js-sys,MIT OR Apache-2.0,The wasm-bindgen Developers json_comments,https://github.com/tmccombs/json-comments-rs,Apache-2.0,Thayne McCombs -lambda_http,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " -lambda_runtime,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " -lambda_runtime_api_client,https://github.com/awslabs/aws-lambda-rust-runtime,Apache-2.0,"David Calavera , Harold Sun " lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel -lazycell,https://github.com/indiv0/lazycell,MIT OR Apache-2.0,"Alex Crichton , Nikita Pekin " levenshtein_automata,https://github.com/tantivy-search/levenshtein-automata,MIT,Paul Masurel libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers libloading,https://github.com/nagisa/rust_libloading,ISC,Simonas Kazlauskas @@ -316,7 +309,6 @@ oneshot,https://github.com/faern/oneshot,MIT OR Apache-2.0,Linus Färnstrand openssl-probe,https://github.com/alexcrichton/openssl-probe,MIT OR Apache-2.0,Alex Crichton opentelemetry,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry Authors -opentelemetry-http,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry-http Authors opentelemetry-otlp,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp,Apache-2.0,The opentelemetry-otlp Authors opentelemetry-proto,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto,Apache-2.0,The opentelemetry-proto Authors opentelemetry_sdk,https://github.com/open-telemetry/opentelemetry-rust,Apache-2.0,The opentelemetry_sdk Authors @@ -375,7 +367,6 @@ prost-build,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Casper Meijn , Tokio Contributors " prost-types,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Casper Meijn , Tokio Contributors " protobuf,https://github.com/stepancheg/rust-protobuf,MIT,Stepan Koltsov -query_map,https://github.com/calavera/query-map-rs,MIT,The query_map Authors quick-error,http://github.com/tailhook/quick-error,MIT OR Apache-2.0,"Paul Colomiets , Colin Kiegel " quinn,https://github.com/quinn-rs/quinn,MIT OR Apache-2.0,The quinn Authors quinn-proto,https://github.com/quinn-rs/quinn,MIT OR Apache-2.0,The quinn-proto Authors @@ -408,7 +399,6 @@ rust-embed-impl,https://github.com/pyros2097/rust-embed,MIT,pyros2097 rust-stemmers,https://github.com/CurrySoftware/rust-stemmers,MIT OR BSD-3-Clause,"Jakob Demler , CurrySoftware " rustc-demangle,https://github.com/rust-lang/rustc-demangle,MIT OR Apache-2.0,Alex Crichton -rustc-hash,https://github.com/rust-lang-nursery/rustc-hash,Apache-2.0 OR MIT,The Rust Project Developers rustc-hash,https://github.com/rust-lang/rustc-hash,Apache-2.0 OR MIT,The Rust Project Developers rustix,https://github.com/bytecodealliance/rustix,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,"Dan Gohman , Jakub Konka " rustls,https://github.com/rustls/rustls,Apache-2.0 OR ISC OR MIT,The rustls Authors @@ -436,10 +426,8 @@ semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " serde_derive,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " -serde_dynamo,https://github.com/zenlist/serde_dynamo,MIT,Bryan Burgers serde_json,https://github.com/serde-rs/json,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " serde_json_borrow,https://github.com/PSeitz/serde_json_borrow,MIT,Pascal Seitz -serde_path_to_error,https://github.com/dtolnay/path-to-error,MIT OR Apache-2.0,David Tolnay serde_qs,https://github.com/samscott89/serde_qs,MIT OR Apache-2.0,Sam Scott serde_spanned,https://github.com/toml-rs/toml,MIT OR Apache-2.0,The serde_spanned Authors serde_urlencoded,https://github.com/nox/serde_urlencoded,MIT OR Apache-2.0,Anthony Ramine @@ -561,7 +549,6 @@ wasm-timer,https://github.com/tomaka/wasm-timer,MIT,Pierre Krieger whichlang,https://github.com/quickwit-oss/whichlang,MIT,"Quickwit, Inc. " winapi,https://github.com/retep998/winapi-rs,MIT,Peter Atashian winapi,https://github.com/retep998/winapi-rs,MIT OR Apache-2.0,Peter Atashian diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 11f9e7d11e4..dacc03c4e42 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -161,10 +161,8 @@ dependencies = [ [[package]] name = "anstream" version = "0.6.20" -version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -193,36 +191,28 @@ dependencies = [ [[package]] name = "anstyle-query" version = "1.1.4" -version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ "windows-sys 0.60.2", - "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" version = "3.0.10" -version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", "windows-sys 0.60.2", - "windows-sys 0.60.2", ] [[package]] name = "anyhow" version = "1.0.99" -version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arc-swap" @@ -287,13 +277,9 @@ dependencies = [ [[package]] name = "async-compression" version = "0.4.30" -version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" -checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" dependencies = [ - "compression-codecs", - "compression-core", "compression-codecs", "compression-core", "futures-core", @@ -314,8 +300,7 @@ dependencies = [ "futures-lite 2.6.1", "parking", "polling", - "rustix 1.1.1", - "rustix 1.1.1", + "rustix 1.1.2", "slab", "windows-sys 0.60.2", ] @@ -323,12 +308,9 @@ dependencies = [ [[package]] name = "async-lock" version = "3.4.1" -version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ - "event-listener 5.4.1", "event-listener 5.4.1", "event-listener-strategy", "pin-project-lite", @@ -348,10 +330,8 @@ dependencies = [ "blocking", "cfg-if", "event-listener 5.4.1", - "event-listener 5.4.1", "futures-lite 2.6.1", - "rustix 1.1.1", - "rustix 1.1.1", + "rustix 1.1.2", ] [[package]] @@ -404,7 +384,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -416,15 +395,12 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" version = "0.1.89" -version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -451,10 +427,8 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" version = "1.8.6" -version = "1.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bc1b40fb26027769f16960d2f4a6bc20c4bb755d403e552c8c1a73af433c246" -checksum = "8bc1b40fb26027769f16960d2f4a6bc20c4bb755d403e552c8c1a73af433c246" dependencies = [ "aws-credential-types", "aws-runtime", @@ -464,11 +438,6 @@ dependencies = [ "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -488,10 +457,8 @@ dependencies = [ [[package]] name = "aws-credential-types" version = "1.2.6" -version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" -checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -501,11 +468,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.13.3" -version = "1.13.3" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" +checksum = "94b8ff6c09cd57b16da53641caa860168b88c172a5ee163b0288d3d6eea12786" dependencies = [ "aws-lc-sys", "zeroize", @@ -527,20 +492,14 @@ dependencies = [ [[package]] name = "aws-runtime" version = "1.5.10" -version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" -checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", "aws-smithy-http 0.62.3", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -558,10 +517,8 @@ dependencies = [ [[package]] name = "aws-sdk-kinesis" version = "1.88.0" -version = "1.88.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d59431117b456eabf7e27ef9cc0137af9cf880937ce459e3ce9dfdf983328b5" -checksum = "6d59431117b456eabf7e27ef9cc0137af9cf880937ce459e3ce9dfdf983328b5" dependencies = [ "aws-credential-types", "aws-runtime", @@ -569,11 +526,6 @@ dependencies = [ "aws-smithy-eventstream", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -622,21 +574,14 @@ dependencies = [ [[package]] name = "aws-sdk-sqs" version = "1.83.0" -version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b3e9f9a923e6c20272c40de609faa8624b687d203bc77df99ccb86a5de5944b" -checksum = "9b3e9f9a923e6c20272c40de609faa8624b687d203bc77df99ccb86a5de5944b" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -651,21 +596,14 @@ dependencies = [ [[package]] name = "aws-sdk-sso" version = "1.83.0" -version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643cd43af212d2a1c4dedff6f044d7e1961e5d9e7cfe773d70f31d9842413886" -checksum = "643cd43af212d2a1c4dedff6f044d7e1961e5d9e7cfe773d70f31d9842413886" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -680,21 +618,14 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" version = "1.84.0" -version = "1.84.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20ec4a95bd48e0db7a424356a161f8d87bd6a4f0af37204775f0da03d9e39fc3" -checksum = "20ec4a95bd48e0db7a424356a161f8d87bd6a4f0af37204775f0da03d9e39fc3" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -709,21 +640,14 @@ dependencies = [ [[package]] name = "aws-sdk-sts" version = "1.85.0" -version = "1.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "410309ad0df4606bc721aff0d89c3407682845453247213a0ccc5ff8801ee107" -checksum = "410309ad0df4606bc721aff0d89c3407682845453247213a0ccc5ff8801ee107" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http 0.62.3", "aws-smithy-json 0.61.5", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", - "aws-smithy-json 0.61.5", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -739,18 +663,12 @@ dependencies = [ [[package]] name = "aws-sigv4" version = "1.3.4" -version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" -checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", "aws-smithy-http 0.62.3", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-runtime-api", "aws-smithy-types", "bytes", @@ -805,10 +723,8 @@ dependencies = [ [[package]] name = "aws-smithy-eventstream" version = "0.60.11" -version = "0.60.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" -checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" dependencies = [ "aws-smithy-types", "bytes", @@ -838,14 +754,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -<<<<<<< HEAD -version = "0.62.3" -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) version = "0.62.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" -checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -865,10 +776,8 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" version = "1.1.1" -version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" -checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" dependencies = [ "aws-smithy-async", "aws-smithy-protocol-test", @@ -877,14 +786,12 @@ dependencies = [ "bytes", "h2 0.3.27", "h2 0.4.12", - "h2 0.4.12", "http 0.2.12", "http 1.3.1", "http-body 0.4.6", "http-body 1.0.1", "hyper 0.14.32", "hyper 1.7.0", - "hyper 1.7.0", "hyper-rustls 0.24.2", "hyper-rustls 0.27.7", "hyper-util", @@ -893,14 +800,12 @@ dependencies = [ "pin-project-lite", "rustls 0.21.12", "rustls 0.23.31", - "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", "serde_json", "tokio", "tokio-rustls 0.26.2", - "tokio-rustls 0.26.2", "tower 0.5.2", "tracing", ] @@ -916,14 +821,9 @@ dependencies = [ [[package]] name = "aws-smithy-json" -<<<<<<< HEAD -version = "0.61.5" -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) version = "0.61.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" -checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" dependencies = [ "aws-smithy-types", ] @@ -954,7 +854,6 @@ dependencies = [ "roxmltree 0.14.1", "serde_json", "thiserror 2.0.16", - "thiserror 2.0.16", ] [[package]] @@ -970,17 +869,11 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" version = "1.9.1" -version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" -checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", "aws-smithy-http 0.62.3", -<<<<<<< HEAD - "aws-smithy-http 0.62.3", -======= ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", @@ -1001,10 +894,8 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" version = "1.9.0" -version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" -checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -1055,10 +946,8 @@ dependencies = [ [[package]] name = "aws-types" version = "1.3.8" -version = "1.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" -checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -1068,26 +957,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "aws_lambda_events" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144ec7565561115498a288850cc6a42b279e09b6c4b88f623eecb9c8ca96c08c" -dependencies = [ - "base64 0.22.1", - "bytes", - "chrono", - "flate2", - "http 1.3.1", - "http-body 1.0.1", - "http-serde", - "query_map", - "serde", - "serde_dynamo", - "serde_json", - "serde_with", -] - [[package]] name = "axum" version = "0.6.20" @@ -1245,7 +1114,6 @@ dependencies = [ "quick-xml 0.31.0", "rand 0.8.5", "reqwest 0.12.23", - "reqwest 0.12.23", "rustc_version", "serde", "serde_json", @@ -1336,10 +1204,8 @@ dependencies = [ [[package]] name = "backon" version = "1.5.2" -version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" -checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" dependencies = [ "fastrand 2.3.0", "gloo-timers", @@ -1382,10 +1248,8 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base62" version = "2.2.2" -version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0104d4d8d15e458f21dcd027ea350bf38e4364954909402f4da075aca8d0f136" -checksum = "0104d4d8d15e458f21dcd027ea350bf38e4364954909402f4da075aca8d0f136" dependencies = [ "rustversion", ] @@ -1435,41 +1299,10 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.69.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" -dependencies = [ - "bitflags 2.9.4", - "bitflags 2.9.4", -======= - "bitflags 2.9.3", ->>>>>>> d16cf54c (upgrade warp) - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.106", - "syn 2.0.106", - "which", -] - -[[package]] -name = "bindgen" -version = "0.72.1" version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "cexpr", "clang-sys", @@ -1482,7 +1315,6 @@ dependencies = [ "rustc-hash", "shlex", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -1526,10 +1358,8 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" version = "2.9.4" -version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -1589,10 +1419,8 @@ dependencies = [ [[package]] name = "bon" version = "3.7.2" -version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" -checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" dependencies = [ "bon-macros", "rustversion", @@ -1601,12 +1429,9 @@ dependencies = [ [[package]] name = "bon-macros" version = "3.7.2" -version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" -checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" dependencies = [ - "darling 0.21.3", "darling 0.21.3", "ident_case", "prettyplease", @@ -1614,7 +1439,6 @@ dependencies = [ "quote", "rustversion", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -1638,7 +1462,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -1696,10 +1519,8 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" version = "1.23.2" -version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "byteorder" @@ -1801,12 +1622,9 @@ dependencies = [ [[package]] name = "cc" version = "1.2.36" -version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ - "find-msvc-tools", "find-msvc-tools", "jobserver", "libc", @@ -1840,10 +1658,8 @@ dependencies = [ [[package]] name = "cfg-if" version = "1.0.3" -version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -1896,7 +1712,6 @@ dependencies = [ "itertools 0.14.0", "lru 0.13.0", "rand 0.9.2", - "rand 0.9.2", "serde", "tokio", "tokio-stream", @@ -1907,10 +1722,8 @@ dependencies = [ [[package]] name = "chrono" version = "0.4.42" -version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", "js-sys", @@ -1918,7 +1731,6 @@ dependencies = [ "serde", "wasm-bindgen", "windows-link 0.2.0", - "windows-link 0.2.0", ] [[package]] @@ -2000,10 +1812,8 @@ dependencies = [ [[package]] name = "clap" version = "4.5.47" -version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", ] @@ -2011,10 +1821,8 @@ dependencies = [ [[package]] name = "clap_builder" version = "4.5.47" -version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -2066,7 +1874,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ "thiserror 2.0.16", - "thiserror 2.0.16", ] [[package]] @@ -2128,25 +1935,6 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" -[[package]] -name = "compression-codecs" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" -dependencies = [ - "compression-core", - "flate2", - "memchr", - "zstd 0.13.3", - "zstd-safe 7.2.4", -] - -[[package]] -name = "compression-core" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -2496,10 +2284,8 @@ dependencies = [ [[package]] name = "curve25519-dalek" version = "4.1.3" -version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", @@ -2520,7 +2306,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -2533,18 +2318,6 @@ dependencies = [ "darling_macro 0.20.11", ] -[[package]] -name = "darling" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" -dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - [[package]] name = "darling" version = "0.21.3" @@ -2569,21 +2342,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.106", - "syn 2.0.106", -] - [[package]] name = "darling_core" version = "0.21.3" @@ -2605,21 +2363,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", - "darling_core 0.20.11", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -2642,10 +2387,8 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-url" version = "0.3.2" -version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" -checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "dbl" @@ -2659,14 +2402,11 @@ dependencies = [ [[package]] name = "deadpool" version = "0.12.3" -version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b" -checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b" dependencies = [ "deadpool-runtime", "lazy_static", - "lazy_static", "num_cpus", "tokio", ] @@ -2710,10 +2450,8 @@ dependencies = [ [[package]] name = "deranged" version = "0.5.3" -version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -2730,7 +2468,6 @@ dependencies = [ "quote", "rustc_version", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -2778,23 +2515,18 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] name = "dns-lookup" version = "2.1.1" -version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf5597a4b7fe5275fc9dcf88ce26326bc8e4cb87d0130f33752d4c5f717793cf" -checksum = "cf5597a4b7fe5275fc9dcf88ce26326bc8e4cb87d0130f33752d4c5f717793cf" dependencies = [ "cfg-if", "libc", "socket2 0.6.0", "windows-sys 0.60.2", - "socket2 0.6.0", - "windows-sys 0.60.2", ] [[package]] @@ -2836,10 +2568,8 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" version = "2.0.2" -version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" -checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "dtoa" @@ -2868,10 +2598,8 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" version = "1.0.20" -version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -3106,15 +2834,12 @@ dependencies = [ [[package]] name = "enum-iterator-derive" version = "1.5.0" -version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" -checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -3169,10 +2894,8 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" version = "5.4.1" -version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -3185,7 +2908,6 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", "event-listener 5.4.1", "pin-project-lite", ] @@ -3210,8 +2932,6 @@ dependencies = [ "bit-set", "regex-automata", "regex-syntax", - "regex-automata", - "regex-syntax", ] [[package]] @@ -3258,24 +2978,19 @@ dependencies = [ [[package]] name = "fiat-crypto" version = "0.2.9" -version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" version = "0.2.26" -version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", "windows-sys 0.60.2", - "windows-sys 0.60.2", ] [[package]] @@ -3284,12 +2999,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" -[[package]] -name = "find-msvc-tools" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" - [[package]] name = "findshlibs" version = "0.10.2" @@ -3378,10 +3087,8 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" version = "1.2.2" -version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -3520,7 +3227,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -3562,10 +3268,8 @@ dependencies = [ [[package]] name = "generator" version = "0.8.7" -version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" -checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", @@ -3621,7 +3325,6 @@ dependencies = [ "libc", "r-efi", "wasi 0.14.4+wasi-0.2.4", - "wasi 0.14.4+wasi-0.2.4", "wasm-bindgen", ] @@ -3634,10 +3337,8 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" version = "0.3.3" -version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gloo-timers" @@ -3742,10 +3443,8 @@ dependencies = [ [[package]] name = "grok" version = "2.4.0" -version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e2d7bd791814b06a609b74361ac35b448eb4718548937c6de718554a4348577" -checksum = "2e2d7bd791814b06a609b74361ac35b448eb4718548937c6de718554a4348577" dependencies = [ "glob", "onig", @@ -3796,10 +3495,8 @@ dependencies = [ [[package]] name = "h2" version = "0.4.12" -version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -3847,10 +3544,8 @@ dependencies = [ [[package]] name = "hashbrown" version = "0.15.5" -version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -3977,7 +3672,6 @@ dependencies = [ "cfg-if", "libc", "windows-link 0.1.3", - "windows-link 0.1.3", ] [[package]] @@ -4040,7 +3734,16 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "pin-project-lite", - "tokio", +] + +[[package]] +name = "http-serde" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" +dependencies = [ + "http 1.3.1", + "serde", ] [[package]] @@ -4099,7 +3802,6 @@ dependencies = [ "itoa", "pin-project-lite", "socket2 0.5.10", - "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -4109,17 +3811,12 @@ dependencies = [ [[package]] name = "hyper" version = "1.7.0" -version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ - "atomic-waker", "atomic-waker", "bytes", - "futures-channel", - "futures-core", - "h2 0.4.12", + "futures-channel", "futures-core", "h2 0.4.12", "http 1.3.1", @@ -4129,7 +3826,6 @@ dependencies = [ "itoa", "pin-project-lite", "pin-utils", - "pin-utils", "smallvec", "tokio", "want", @@ -4159,18 +3855,15 @@ checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.3.1", "hyper 1.7.0", - "hyper 1.7.0", "hyper-util", "log", "rustls 0.23.31", - "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", "tower-service", "webpki-roots 1.0.2", - "webpki-roots 1.0.2", ] [[package]] @@ -4191,7 +3884,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.7.0", "hyper 1.7.0", "hyper-util", "pin-project-lite", @@ -4221,7 +3913,6 @@ dependencies = [ "bytes", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -4232,10 +3923,8 @@ dependencies = [ [[package]] name = "hyper-util" version = "0.1.16" -version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -4245,13 +3934,11 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.7.0", - "hyper 1.7.0", "ipnet", "libc", "percent-encoding", "pin-project-lite", "socket2 0.6.0", - "socket2 0.6.0", "system-configuration 0.6.1", "tokio", "tower-service", @@ -4387,10 +4074,8 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" version = "1.1.0" -version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4428,7 +4113,6 @@ checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", "hashbrown 0.15.5", - "hashbrown 0.15.5", "serde", ] @@ -4498,7 +4182,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -4526,12 +4209,9 @@ dependencies = [ [[package]] name = "io-uring" version = "0.7.10" -version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "cfg-if", "libc", @@ -4615,10 +4295,8 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" version = "0.1.34" -version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -4627,10 +4305,8 @@ dependencies = [ [[package]] name = "js-sys" version = "0.3.78" -version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -4703,7 +4379,6 @@ dependencies = [ "petgraph", "regex", "regex-syntax", - "regex-syntax", "sha3", "string_cache", "term", @@ -4717,87 +4392,10 @@ version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5baa5e9ff84f1aefd264e6869907646538a52147a755d494517a8007fb48733" dependencies = [ - "regex-automata", "regex-automata", "rustversion", ] -[[package]] -name = "lambda_http" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b470cea1ec37b96e9543870a33c1f4b9e243754fe5892668efa3125ea12784" -dependencies = [ - "aws_lambda_events", - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.7.0", - "lambda_runtime", - "mime", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio-stream", - "url", -] - -[[package]] -name = "lambda_runtime" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed49669d6430292aead991e19bf13153135a884f916e68f32997c951af637ebe" -dependencies = [ - "async-stream", - "base64 0.22.1", - "bytes", - "futures", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "http-serde", - "hyper 1.7.0", - "hyper-util", - "lambda_runtime_api_client", - "pin-project", - "serde", - "serde_json", - "serde_path_to_error", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tracing", -] - -[[package]] -name = "lambda_runtime_api_client" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90a10f094475a34a04da2be11686c4dcfe214d93413162db9ffdff3d3af293a" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.7.0", - "hyper-util", - "tokio", - "tower 0.4.13", - "tower-service", - "tracing", - "tracing-subscriber", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -4816,10 +4414,8 @@ checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25" [[package]] name = "libc" version = "0.2.175" -version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" @@ -4829,7 +4425,6 @@ checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", "windows-targets 0.53.3", - "windows-targets 0.53.3", ] [[package]] @@ -4841,16 +4436,12 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" version = "0.1.9" -version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "libc", "redox_syscall 0.5.17", - "redox_syscall 0.5.17", ] [[package]] @@ -5140,10 +4731,8 @@ dependencies = [ [[package]] name = "log" version = "0.4.28" -version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "loom" @@ -5165,7 +4754,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ "hashbrown 0.15.5", - "hashbrown 0.15.5", ] [[package]] @@ -5175,7 +4763,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" dependencies = [ "hashbrown 0.15.5", - "hashbrown 0.15.5", ] [[package]] @@ -5218,13 +4805,10 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "matchers" version = "0.2.0" -version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ "regex-automata", - "regex-automata", ] [[package]] @@ -5279,10 +4863,8 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" version = "0.9.8" -version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -5312,7 +4894,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -5390,7 +4971,6 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "event-listener 5.4.1", - "event-listener 5.4.1", "futures-util", "loom", "parking_lot 0.12.4", @@ -5514,13 +5094,10 @@ dependencies = [ [[package]] name = "nu-ansi-term" version = "0.50.1" -version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ "windows-sys 0.52.0", - "windows-sys 0.52.0", ] [[package]] @@ -5646,7 +5223,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -5659,7 +5235,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -5680,10 +5255,8 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "numfmt" version = "1.2.0" -version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1a14c0c3b00c5b3f3ab9625c35601c5cac06a94bb6b17c27327a8f1d520c6" -checksum = "8ea1a14c0c3b00c5b3f3ab9625c35601c5cac06a94bb6b17c27327a8f1d520c6" dependencies = [ "dtoa", "itoa", @@ -5762,7 +5335,6 @@ version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "libc", "once_cell", @@ -5813,7 +5385,6 @@ dependencies = [ "quick-xml 0.37.5", "reqsign", "reqwest 0.12.23", - "reqwest 0.12.23", "serde", "serde_json", "tokio", @@ -5858,7 +5429,6 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "cfg-if", "foreign-types", @@ -5877,7 +5447,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -5889,10 +5458,8 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" version = "300.5.2+3.5.2" -version = "300.5.2+3.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" -checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" dependencies = [ "cc", ] @@ -5924,19 +5491,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "opentelemetry-http" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" -dependencies = [ - "async-trait", - "bytes", - "http 1.3.1", - "opentelemetry", - "reqwest 0.12.23", -] - [[package]] name = "opentelemetry-otlp" version = "0.27.0" @@ -5947,11 +5501,9 @@ dependencies = [ "futures-core", "http 1.3.1", "opentelemetry", - "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", "prost 0.13.5", - "reqwest 0.12.23", "thiserror 1.0.69", "tokio", "tonic 0.12.3", @@ -6041,7 +5593,6 @@ dependencies = [ "proc-macro2-diagnostics", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -6156,7 +5707,6 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.5.17", - "redox_syscall 0.5.17", "smallvec", "windows-targets 0.52.6", ] @@ -6249,10 +5799,8 @@ dependencies = [ [[package]] name = "percent-encoding" version = "2.3.2" -version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf-event" @@ -6281,7 +5829,6 @@ checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror 2.0.16", - "thiserror 2.0.16", "ucd-trie", ] @@ -6306,7 +5853,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -6375,7 +5921,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -6608,10 +6153,8 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "postcard" version = "1.1.3" -version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" -checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" dependencies = [ "cobs", "embedded-io 0.4.0", @@ -6622,10 +6165,8 @@ dependencies = [ [[package]] name = "potential_utf" version = "0.1.3" -version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -6729,14 +6270,11 @@ dependencies = [ [[package]] name = "prettyplease" version = "0.2.37" -version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -6794,10 +6332,8 @@ dependencies = [ [[package]] name = "proc-macro2" version = "1.0.101" -version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -6811,7 +6347,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "version_check", "yansi", ] @@ -6822,7 +6357,6 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "hex", "lazy_static", @@ -6836,7 +6370,6 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "hex", ] @@ -6867,15 +6400,12 @@ dependencies = [ "bit-set", "bit-vec", "bitflags 2.9.4", - "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", - "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax", - "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -6918,7 +6448,6 @@ dependencies = [ "prost-types 0.13.5", "regex", "syn 2.0.106", - "syn 2.0.106", "tempfile", ] @@ -6946,7 +6475,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -6987,10 +6515,8 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psl" version = "2.1.140" -version = "2.1.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a33878b44e45231ecbc8c619cc8059e4adab882b25812192676fe08dcf352f" -checksum = "89a33878b44e45231ecbc8c619cc8059e4adab882b25812192676fe08dcf352f" dependencies = [ "psl-types", ] @@ -7068,17 +6594,6 @@ dependencies = [ "zstd 0.13.3", ] -[[package]] -name = "query_map" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eab6b8b1074ef3359a863758dae650c7c0c6027927a085b7af911c8e0bf3a15" -dependencies = [ - "form_urlencoded", - "serde", - "serde_derive", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -7130,7 +6645,6 @@ dependencies = [ "serde_json", "sync_wrapper 1.0.2", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tracing", ] @@ -7151,7 +6665,6 @@ dependencies = [ "futures", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-rustls 0.27.7", "quickwit-common", "tokio", @@ -7201,7 +6714,6 @@ dependencies = [ "tabled", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "thousands", "tikv-jemalloc-ctl", "tikv-jemallocator", @@ -7252,7 +6764,6 @@ dependencies = [ "quote", "serde", "syn 2.0.106", - "syn 2.0.106", "tonic-build", ] @@ -7273,7 +6784,6 @@ dependencies = [ "quickwit-proto", "serde", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tokio-stream", "tonic 0.13.1", @@ -7299,7 +6809,6 @@ dependencies = [ "hostname 0.3.1", "http 1.3.1", "hyper 1.7.0", - "hyper 1.7.0", "hyper-util", "itertools 0.14.0", "once_cell", @@ -7317,7 +6826,6 @@ dependencies = [ "sysinfo", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "tikv-jemalloc-ctl", "tikv-jemallocator", "tokio", @@ -7452,7 +6960,6 @@ dependencies = [ "siphasher", "tantivy", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tracing", "utoipa", @@ -7473,7 +6980,6 @@ dependencies = [ "quickwit-proto", "quickwit-storage", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tracing", @@ -7528,13 +7034,11 @@ dependencies = [ "rdkafka", "regex", "reqwest 0.12.23", - "reqwest 0.12.23", "serde", "serde_json", "tantivy", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tracing", @@ -7574,7 +7078,6 @@ dependencies = [ "serde_json_borrow", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tonic 0.13.1", "tower 0.5.2", @@ -7591,7 +7094,6 @@ dependencies = [ "aws-sdk-sqs", "futures-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-util", "itertools 0.14.0", "quickwit-actors", @@ -7607,6 +7109,7 @@ dependencies = [ "quickwit-storage", "rand 0.8.5", "reqwest 0.12.23", + "rustls 0.23.31", "serde_json", "tempfile", "tokio", @@ -7674,62 +7177,12 @@ dependencies = [ "tantivy", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tracing", "utoipa", ] -[[package]] -name = "quickwit-lambda" -version = "0.8.0" -dependencies = [ - "anyhow", - "aws_lambda_events", - "bytesize", - "chitchat", - "chrono", - "flate2", - "futures", - "http 1.3.1", - "http-body-util", - "hyper 1.7.0", - "lambda_http", - "lambda_runtime", - "mime_guess", - "once_cell", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry_sdk", - "quickwit-actors", - "quickwit-cli", - "quickwit-cluster", - "quickwit-common", - "quickwit-config", - "quickwit-index-management", - "quickwit-indexing", - "quickwit-ingest", - "quickwit-janitor", - "quickwit-metastore", - "quickwit-proto", - "quickwit-search", - "quickwit-serve", - "quickwit-storage", - "quickwit-telemetry", - "rand 0.8.5", - "reqwest 0.12.23", - "serde", - "serde_json", - "serial_test", - "time", - "tokio", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber", - "warp", -] - [[package]] name = "quickwit-macros" version = "0.8.0" @@ -7737,7 +7190,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -7766,7 +7218,6 @@ dependencies = [ "rand 0.8.5", "regex", "regex-syntax", - "regex-syntax", "sea-query", "sea-query-binder", "serde", @@ -7776,7 +7227,6 @@ dependencies = [ "sqlx", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tokio-stream", @@ -7804,7 +7254,6 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tonic 0.13.1", @@ -7836,7 +7285,6 @@ dependencies = [ "serde_json", "sqlx", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tonic 0.13.1", "tonic-build", @@ -7871,7 +7319,6 @@ dependencies = [ "tantivy", "tantivy-fst", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "whichlang", ] @@ -7893,13 +7340,11 @@ dependencies = [ "quickwit-search", "quickwit-serve", "reqwest 0.12.23", - "reqwest 0.12.23", "reqwest-middleware", "reqwest-retry", "serde", "serde_json", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tracing", "wiremock", @@ -7943,7 +7388,6 @@ dependencies = [ "tantivy", "tantivy-fst", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -7975,7 +7419,6 @@ dependencies = [ "http-serde", "humantime", "hyper 1.7.0", - "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", "itertools 0.14.0", @@ -8015,7 +7458,6 @@ dependencies = [ "serde_with", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "tokio", "tokio-rustls 0.26.2", @@ -8054,7 +7496,6 @@ dependencies = [ "futures", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "lru 0.13.0", "md5", "mockall", @@ -8070,13 +7511,11 @@ dependencies = [ "regex", "reqsign", "reqwest 0.12.23", - "reqwest 0.12.23", "serde", "serde_json", "tantivy", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8096,7 +7535,6 @@ dependencies = [ "once_cell", "quickwit-common", "reqwest 0.12.23", - "reqwest 0.12.23", "serde", "serde_json", "tokio", @@ -8108,10 +7546,8 @@ dependencies = [ [[package]] name = "quinn" version = "0.11.9" -version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -8122,9 +7558,6 @@ dependencies = [ "rustls 0.23.31", "socket2 0.6.0", "thiserror 2.0.16", - "rustls 0.23.31", - "socket2 0.6.0", - "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -8133,24 +7566,19 @@ dependencies = [ [[package]] name = "quinn-proto" version = "0.11.13" -version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", "rand 0.9.2", - "rand 0.9.2", "ring 0.17.14", - "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustc-hash", "rustls 0.23.31", "rustls-pki-types", "slab", "thiserror 2.0.16", - "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -8159,19 +7587,15 @@ dependencies = [ [[package]] name = "quinn-udp" version = "0.5.14" -version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2 0.6.0", - "socket2 0.6.0", "tracing", "windows-sys 0.60.2", - "windows-sys 0.60.2", ] [[package]] @@ -8228,10 +7652,8 @@ dependencies = [ [[package]] name = "rand" version = "0.9.2" -version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -8325,10 +7747,8 @@ dependencies = [ [[package]] name = "rayon" version = "1.11.0" -version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -8337,10 +7757,8 @@ dependencies = [ [[package]] name = "rayon-core" version = "1.13.0" -version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -8392,13 +7810,10 @@ dependencies = [ [[package]] name = "redox_syscall" version = "0.5.17" -version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags 2.9.4", - "bitflags 2.9.4", ] [[package]] @@ -8419,54 +7834,42 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] name = "regex" version = "1.11.2" -version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", - "regex-automata", - "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.10" -version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "regex-syntax", ] [[package]] name = "regex-lite" version = "0.1.7" -version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" -checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" [[package]] name = "regex-syntax" version = "0.8.6" -version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rend" @@ -8498,7 +7901,6 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "reqwest 0.12.23", - "reqwest 0.12.23", "rsa", "serde", "serde_json", @@ -8553,21 +7955,17 @@ dependencies = [ [[package]] name = "reqwest" version = "0.12.23" -version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", - "futures-channel", "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-tls 0.6.0", "hyper-util", @@ -8578,7 +7976,6 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.31", - "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", "serde_json", @@ -8597,7 +7994,6 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots 1.0.2", - "webpki-roots 1.0.2", ] [[package]] @@ -8610,7 +8006,6 @@ dependencies = [ "async-trait", "http 1.3.1", "reqwest 0.12.23", - "reqwest 0.12.23", "serde", "thiserror 1.0.69", "tower-service", @@ -8628,10 +8023,8 @@ dependencies = [ "getrandom 0.2.16", "http 1.3.1", "hyper 1.7.0", - "hyper 1.7.0", "parking_lot 0.11.2", "reqwest 0.12.23", - "reqwest 0.12.23", "reqwest-middleware", "retry-policies", "thiserror 1.0.69", @@ -8794,7 +8187,6 @@ dependencies = [ "quote", "rust-embed-utils", "syn 2.0.106", - "syn 2.0.106", "walkdir", ] @@ -8837,16 +8229,8 @@ dependencies = [ [[package]] name = "rustc-demangle" version = "0.1.26" -version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" @@ -8869,7 +8253,6 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "errno", "libc", @@ -8883,7 +8266,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "errno", "libc", @@ -8906,10 +8288,8 @@ dependencies = [ [[package]] name = "rustls" version = "0.23.31" -version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "aws-lc-rs", "log", @@ -8943,7 +8323,6 @@ dependencies = [ "rustls-pki-types", "schannel", "security-framework 3.4.0", - "security-framework 3.4.0", ] [[package]] @@ -9015,10 +8394,8 @@ checksum = "0b5a6a926633a8ce739286680df905e1d1d01db609fc0e09d28e9b901ac7b22f" [[package]] name = "rustversion" version = "1.0.22" -version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -9071,10 +8448,8 @@ dependencies = [ [[package]] name = "scc" version = "2.4.0" -version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" dependencies = [ "sdd", ] @@ -9151,10 +8526,8 @@ dependencies = [ [[package]] name = "sdd" version = "3.0.10" -version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" [[package]] name = "sea-query" @@ -9182,15 +8555,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bae0cbad6ab996955664982739354128c58d16e126114fe88c2a493642502aab" dependencies = [ - "darling 0.20.11", "darling 0.20.11", "heck 0.4.1", "proc-macro2", "quote", "syn 2.0.106", "thiserror 2.0.16", - "syn 2.0.106", - "thiserror 2.0.16", ] [[package]] @@ -9233,7 +8603,6 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", @@ -9244,12 +8613,9 @@ dependencies = [ [[package]] name = "security-framework" version = "3.4.0" -version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" -checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", @@ -9260,10 +8626,8 @@ dependencies = [ [[package]] name = "security-framework-sys" version = "2.15.0" -version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -9311,23 +8675,11 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "serde_dynamo" -version = "4.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36c1b1792cfd9de29eb373ee6a4b74650369c096f55db7198ceb7b8921d1f7f" -dependencies = [ - "base64 0.21.7", - "serde", -] - [[package]] name = "serde_json" version = "1.0.143" -version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap 2.11.1", "indexmap 2.11.1", @@ -9436,12 +8788,10 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling 0.20.11", "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -9482,7 +8832,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -9584,10 +8933,8 @@ dependencies = [ [[package]] name = "signal-hook-registry" version = "1.4.6" -version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -9627,7 +8974,6 @@ dependencies = [ "num-bigint", "num-traits", "thiserror 2.0.16", - "thiserror 2.0.16", "time", ] @@ -9649,10 +8995,8 @@ dependencies = [ [[package]] name = "slab" version = "0.4.11" -version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -9673,13 +9017,10 @@ dependencies = [ [[package]] name = "snafu" version = "0.8.9" -version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" -checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ "snafu-derive 0.8.9", - "snafu-derive 0.8.9", ] [[package]] @@ -9697,16 +9038,13 @@ dependencies = [ [[package]] name = "snafu-derive" version = "0.8.9" -version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" -checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -9735,16 +9073,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "socket2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "spin" version = "0.5.2" @@ -9895,7 +9223,6 @@ dependencies = [ "atoi", "base64 0.21.7", "bitflags 2.9.4", - "bitflags 2.9.4", "byteorder", "bytes", "crc", @@ -9939,7 +9266,6 @@ dependencies = [ "atoi", "base64 0.21.7", "bitflags 2.9.4", - "bitflags 2.9.4", "byteorder", "crc", "dotenvy", @@ -10059,10 +9385,8 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" version = "12.16.2" -version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" -checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" dependencies = [ "debugid", "memmap2", @@ -10073,10 +9397,8 @@ dependencies = [ [[package]] name = "symbolic-demangle" version = "12.16.2" -version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" -checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -10097,10 +9419,8 @@ dependencies = [ [[package]] name = "syn" version = "2.0.106" -version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -10131,7 +9451,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -10175,7 +9494,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.4", "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", @@ -10282,7 +9600,6 @@ dependencies = [ "tantivy-tokenizer-api", "tempfile", "thiserror 2.0.16", - "thiserror 2.0.16", "time", "uuid", "winapi 0.3.9", @@ -10332,7 +9649,6 @@ checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18" dependencies = [ "byteorder", "regex-syntax", - "regex-syntax", "utf8-ranges", ] @@ -10394,11 +9710,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" -version = "3.21.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand 2.3.0", "getrandom 0.3.3", @@ -10446,13 +9760,10 @@ dependencies = [ [[package]] name = "thiserror" version = "2.0.16" -version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ "thiserror-impl 2.0.16", - "thiserror-impl 2.0.16", ] [[package]] @@ -10464,21 +9775,17 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] name = "thiserror-impl" version = "2.0.16" -version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -10530,10 +9837,8 @@ dependencies = [ [[package]] name = "time" version = "0.3.43" -version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", "js-sys", @@ -10549,10 +9854,8 @@ dependencies = [ [[package]] name = "time-core" version = "0.1.6" -version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-fmt" @@ -10567,10 +9870,8 @@ dependencies = [ [[package]] name = "time-macros" version = "0.2.24" -version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -10599,10 +9900,8 @@ dependencies = [ [[package]] name = "tinyvec" version = "1.10.0" -version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -10616,10 +9915,8 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" version = "1.47.1" -version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -10631,20 +9928,16 @@ dependencies = [ "signal-hook-registry", "slab", "socket2 0.6.0", - "socket2 0.6.0", "tokio-macros", "tracing", "windows-sys 0.59.0", - "windows-sys 0.59.0", ] [[package]] name = "tokio-io-timeout" version = "1.2.1" -version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" -checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" dependencies = [ "pin-project-lite", "tokio", @@ -10659,7 +9952,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -10711,7 +10003,6 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.31", "rustls 0.23.31", "tokio", ] @@ -10731,10 +10022,8 @@ dependencies = [ [[package]] name = "tokio-util" version = "0.7.16" -version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -10742,7 +10031,6 @@ dependencies = [ "futures-sink", "futures-util", "hashbrown 0.15.5", - "hashbrown 0.15.5", "pin-project-lite", "slab", "tokio", @@ -10793,7 +10081,6 @@ dependencies = [ "indexmap 2.11.1", "toml_datetime", "winnow 0.7.13", - "winnow 0.7.13", ] [[package]] @@ -10841,19 +10128,16 @@ dependencies = [ "base64 0.22.1", "bytes", "h2 0.4.12", - "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-timeout 0.5.2", "hyper-util", "percent-encoding", "pin-project", "prost 0.13.5", "socket2 0.5.10", - "socket2 0.5.10", "tokio", "tokio-stream", "tower 0.4.13", @@ -10874,12 +10158,10 @@ dependencies = [ "bytes", "flate2", "h2 0.4.12", - "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-timeout 0.5.2", "hyper-util", "percent-encoding", @@ -10887,7 +10169,6 @@ dependencies = [ "prost 0.13.5", "rustls-native-certs 0.8.1", "socket2 0.5.10", - "socket2 0.5.10", "tokio", "tokio-rustls 0.26.2", "tokio-stream", @@ -10910,7 +10191,6 @@ dependencies = [ "prost-types 0.13.5", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -10980,38 +10260,12 @@ dependencies = [ [[package]] name = "tower-http" -<<<<<<< HEAD -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "async-compression", - "bitflags 2.9.4", - "bitflags 2.9.4", - "bytes", - "futures-core", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "http-range-header", - "pin-project-lite", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -======= ->>>>>>> a5ece5ef (fixes) version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "bitflags 2.9.4", - "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -11059,7 +10313,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -11114,16 +10367,13 @@ dependencies = [ [[package]] name = "tracing-subscriber" version = "0.3.20" -version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex-automata", - "regex-automata", "serde", "serde_json", "sharded-slab", @@ -11192,7 +10442,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ - "rand 0.9.2", "rand 0.9.2", "serde", "web-time", @@ -11298,10 +10547,8 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" version = "2.5.7" -version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -11372,22 +10619,18 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "ulid", ] [[package]] name = "uuid" version = "1.18.1" -version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", "rand 0.9.2", - "rand 0.9.2", "serde", "wasm-bindgen", ] @@ -11488,13 +10731,11 @@ dependencies = [ "sha3", "simdutf8", "snafu 0.8.9", - "snafu 0.8.9", "snap", "strip-ansi-escapes", "syslog_loose", "termcolor", "thiserror 2.0.16", - "thiserror 2.0.16", "tokio", "tracing", "uaparser", @@ -11582,7 +10823,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d06d9202adc1f15d709c4f4a2069be5428aa912cc025d6f268ac441ab066b0" dependencies = [ - "async-compression", "bytes", "futures-channel", "futures-util", @@ -11622,13 +10862,10 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" version = "0.14.4+wasi-0.2.4" -version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" -checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ "wit-bindgen", - "wit-bindgen", ] [[package]] @@ -11649,43 +10886,35 @@ dependencies = [ [[package]] name = "wasm-bindgen" version = "0.2.101" -version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", "wasm-bindgen-shared", - "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" version = "0.2.101" -version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" version = "0.4.51" -version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -11697,10 +10926,8 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" version = "0.2.101" -version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11709,15 +10936,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" version = "0.2.101" -version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11725,10 +10949,8 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" version = "0.2.101" -version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -11764,10 +10986,8 @@ dependencies = [ [[package]] name = "web-sys" version = "0.3.78" -version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -11801,10 +11021,8 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" version = "1.0.2" -version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -11818,12 +11036,9 @@ checksum = "0b9aa3ad29c3d08283ac6b769e3ec15ad1ddb88af7d2e9bc402c574973b937e7" [[package]] name = "whoami" version = "1.6.1" -version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ - "libredox", "libredox", "wasite", ] @@ -11859,13 +11074,10 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.11" -version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ "windows-sys 0.61.0", - "windows-sys 0.61.0", ] [[package]] @@ -11894,7 +11106,6 @@ dependencies = [ "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", - "windows-link 0.1.3", "windows-numerics", ] @@ -11928,7 +11139,6 @@ dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", "windows-link 0.1.3", - "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings", ] @@ -11941,7 +11151,6 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-link 0.1.3", "windows-threading", ] @@ -11954,7 +11163,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -11966,7 +11174,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -11978,7 +11185,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -11990,7 +11196,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -12005,12 +11210,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" -[[package]] -name = "windows-link" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" - [[package]] name = "windows-numerics" version = "0.2.0" @@ -12019,7 +11218,6 @@ checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-link 0.1.3", ] [[package]] @@ -12028,7 +11226,6 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link 0.1.3", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings", @@ -12050,7 +11247,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link 0.1.3", - "windows-link 0.1.3", ] [[package]] @@ -12060,7 +11256,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link 0.1.3", - "windows-link 0.1.3", ] [[package]] @@ -12099,16 +11294,6 @@ dependencies = [ "windows-targets 0.53.3", ] -[[package]] -name = "windows-sys" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" -dependencies = [ - "windows-link 0.2.0", - "windows-targets 0.53.3", -] - [[package]] name = "windows-sys" version = "0.61.0" @@ -12152,12 +11337,9 @@ dependencies = [ [[package]] name = "windows-targets" version = "0.53.3" -version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link 0.1.3", "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -12176,7 +11358,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ "windows-link 0.1.3", - "windows-link 0.1.3", ] [[package]] @@ -12329,10 +11510,8 @@ dependencies = [ [[package]] name = "winnow" version = "0.7.13" -version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -12350,10 +11529,8 @@ dependencies = [ [[package]] name = "wiremock" version = "0.6.5" -version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031" -checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031" dependencies = [ "assert-json-diff", "base64 0.22.1", @@ -12362,7 +11539,6 @@ dependencies = [ "http 1.3.1", "http-body-util", "hyper 1.7.0", - "hyper 1.7.0", "hyper-util", "log", "once_cell", @@ -12376,11 +11552,8 @@ dependencies = [ [[package]] name = "wit-bindgen" version = "0.45.1" -name = "wit-bindgen" -version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "woothee" @@ -12459,17 +11632,14 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "synstructure", ] [[package]] name = "zerocopy" version = "0.8.27" -version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] @@ -12477,15 +11647,12 @@ dependencies = [ [[package]] name = "zerocopy-derive" version = "0.8.27" -version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -12506,7 +11673,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", "synstructure", ] @@ -12530,10 +11696,8 @@ dependencies = [ [[package]] name = "zerovec" version = "0.11.4" -version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -12549,7 +11713,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn 2.0.106", ] [[package]] @@ -12612,21 +11775,10 @@ dependencies = [ [[package]] name = "zstd-sys" version = "2.0.16+zstd.1.5.7" -version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ -<<<<<<< HEAD - "bindgen 0.72.1", - "bindgen 0.72.1", -======= -<<<<<<< HEAD "bindgen", -======= - "bindgen 0.72.1", ->>>>>>> ba7b6abd (aws-sdk-s3 back to 1.62) ->>>>>>> df7b3a5c (aws-sdk-s3 back to 1.62) "cc", "pkg-config", ] From b9db83b48f3316bc5fec4c4ba67ada6737c1632a Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 9 Sep 2025 15:18:08 -0400 Subject: [PATCH 17/19] remove lambda --- quickwit/quickwit-lambda/Cargo.toml | 75 ------ quickwit/quickwit-lambda/README.md | 4 - .../src/searcher/warp_lambda.rs | 246 ------------------ 3 files changed, 325 deletions(-) delete mode 100644 quickwit/quickwit-lambda/Cargo.toml delete mode 100644 quickwit/quickwit-lambda/README.md delete mode 100644 quickwit/quickwit-lambda/src/searcher/warp_lambda.rs diff --git a/quickwit/quickwit-lambda/Cargo.toml b/quickwit/quickwit-lambda/Cargo.toml deleted file mode 100644 index a360d72a7af..00000000000 --- a/quickwit/quickwit-lambda/Cargo.toml +++ /dev/null @@ -1,75 +0,0 @@ -[package] -name = "quickwit-lambda" -description = "Serverless Quickwit on AWS Lambda" - -version.workspace = true -edition.workspace = true -homepage.workspace = true -documentation.workspace = true -repository.workspace = true -authors.workspace = true -license.workspace = true - -[[bin]] -name = "indexer" -path = "src/bin/indexer.rs" - -[[bin]] -name = "searcher" -path = "src/bin/searcher.rs" - -[features] -s3-localstack-tests = [] - -[dependencies] -anyhow = { workspace = true } -aws_lambda_events = "0.16" -bytesize = { workspace = true } -chitchat = { workspace = true } -chrono = { workspace = true } -flate2 = { workspace = true } -futures = { workspace = true } -http = { workspace = true } -http-body-util = { workspace = true } -hyper = { workspace = true } -lambda_http = "0.14" -lambda_runtime = "0.13" -mime_guess = { workspace = true } -once_cell = { workspace = true } -opentelemetry = { workspace = true } -opentelemetry_sdk = { workspace = true } -opentelemetry-otlp = { workspace = true, features = [ - "reqwest-client", - "reqwest-rustls", - "http-proto", -] } -rand = { workspace = true } -reqwest = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -time = { workspace = true } -tokio = { workspace = true } -tracing = { workspace = true } -tracing-opentelemetry = { workspace = true } -tracing-subscriber = { workspace = true, features = ["json"] } -warp = { workspace = true, features = ["compression-gzip"] } - - -quickwit-actors = { workspace = true } -quickwit-cli = { workspace = true } -quickwit-cluster = { workspace = true } -quickwit-common = { workspace = true } -quickwit-config = { workspace = true } -quickwit-index-management = { workspace = true } -quickwit-indexing = { workspace = true } -quickwit-ingest = { workspace = true } -quickwit-janitor = { workspace = true } -quickwit-metastore = { workspace = true } -quickwit-proto = { workspace = true } -quickwit-search = { workspace = true } -quickwit-serve = { workspace = true } -quickwit-storage = { workspace = true } -quickwit-telemetry = { workspace = true } - -[dev-dependencies] -serial_test = { workspace = true } diff --git a/quickwit/quickwit-lambda/README.md b/quickwit/quickwit-lambda/README.md deleted file mode 100644 index 26aacdb0a0c..00000000000 --- a/quickwit/quickwit-lambda/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Deprecation - -This package was removed in Q3 2025. The maintenance burden was high and the -feature was unused. diff --git a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs b/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs deleted file mode 100644 index 8f93714d24b..00000000000 --- a/quickwit/quickwit-lambda/src/searcher/warp_lambda.rs +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright 2021-Present Datadog, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Based on https://github.com/aslamplr/warp_lambda under MIT license - -use core::future::Future; -use std::collections::HashSet; -use std::convert::Infallible; -use std::marker::PhantomData; -use std::pin::Pin; -use std::str::FromStr; -use std::task::{Context, Poll}; - -use anyhow::anyhow; -use http_body_util::{BodyExt, Full}; -use lambda_http::http::HeaderValue; -use lambda_http::{ - Adapter, Body as LambdaBody, Error as LambdaError, Request, RequestExt, Response, Service, - lambda_runtime, -}; -use mime_guess::{Mime, mime}; -use once_cell::sync::Lazy; -use tracing::{Instrument, info_span}; -use warp::hyper::body::{Body, Bytes}; -pub use {lambda_http, warp}; - -pub type WarpRequest = http::Request>; -pub type WarpResponse = http::Response>; - -static PLAINTEXT_MIMES: Lazy> = Lazy::new(|| { - HashSet::from_iter([ - mime::APPLICATION_JAVASCRIPT, - mime::APPLICATION_JAVASCRIPT_UTF_8, - mime::APPLICATION_JSON, - ]) -}); - -pub async fn run<'a, S, B>(service: S) -> Result<(), LambdaError> -where - S: Service, Error = Infallible> + Send + 'a, - S::Future: Send + 'a, - B: Body + Send, - B::Error: std::error::Error + Send + Sync + 'static, -{ - lambda_runtime::run(Adapter::from(WarpAdapter::new(service))).await -} - -#[derive(Clone)] -pub struct WarpAdapter<'a, S, B> -where - S: Service, Error = Infallible>, - S::Future: Send + 'a, - B: Body + Send, - B::Error: std::error::Error + Send + Sync + 'static, -{ - warp_service: S, - _phantom_data: PhantomData<&'a WarpResponse>, -} - -impl<'a, S, B> WarpAdapter<'a, S, B> -where - S: Service, Error = Infallible>, - S::Future: Send + 'a, - B: Body + Send, - B::Error: std::error::Error + Send + Sync + 'static, -{ - pub fn new(warp_service: S) -> Self { - Self { - warp_service, - _phantom_data: PhantomData, - } - } -} - -impl<'a, S, B> Service for WarpAdapter<'a, S, B> -where - S: Service, Error = Infallible> + 'a, - S::Future: Send + 'a, - B: Body + Send, - B::Error: std::error::Error + Send + Sync + 'static, -{ - type Response = Response; - type Error = LambdaError; - type Future = Pin> + Send + 'a>>; - - fn poll_ready(&mut self, ctx: &mut Context<'_>) -> Poll> { - self.warp_service - .poll_ready(ctx) - .map_err(|error| match error {}) - } - - fn call(&mut self, request: Request) -> Self::Future { - let query_params = request.query_string_parameters(); - let request_id = request.lambda_context().request_id.clone(); - let (parts, body) = request.into_parts(); - let mut warp_parts = lambda_parts_to_warp_parts(&parts); - let (content_len, warp_body) = match body { - LambdaBody::Empty => (0, Full::new(Bytes::new())), - LambdaBody::Text(text) => (text.len(), Full::new(Bytes::from(text.into_bytes()))), - LambdaBody::Binary(bytes) => (bytes.len(), Full::new(Bytes::from(bytes))), - }; - let mut uri = format!("http://{}{}", "127.0.0.1", parts.uri.path()); - if !query_params.is_empty() { - let url_res = reqwest::Url::parse_with_params(&uri, query_params.iter()); - if let Ok(url) = url_res { - uri = url.into(); - } else { - return Box::pin(async move { Err(anyhow!("invalid url: {uri}").into()) }); - } - } - warp_parts.uri = warp::hyper::Uri::from_str(uri.as_str()).unwrap(); - // REST API Gateways swallow the content-length header which is required - // by many Quickwit routes (`warp::body::content_length_limit(xxx)`) - if let warp::http::header::Entry::Vacant(entry) = warp_parts.headers.entry("Content-Length") - { - entry.insert(content_len.into()); - } - let warp_request = WarpRequest::from_parts(warp_parts, warp_body); - - // Call warp service with warp request, save future - let warp_fut = self.warp_service.call(warp_request); - - // Create lambda future - let fut = async move { - let warp_response = warp_fut.await?; - let (warp_parts, warp_body): (_, _) = warp_response.into_parts(); - let parts = warp_parts_to_lambda_parts(&warp_parts); - let body = warp_body_to_lambda_body(&parts, warp_body).await?; - let lambda_response = Response::from_parts(parts, body); - Ok::(lambda_response) - } - .instrument(info_span!("searcher request", request_id)); - Box::pin(fut) - } -} - -fn lambda_parts_to_warp_parts( - parts: &lambda_http::http::request::Parts, -) -> warp::http::request::Parts { - let mut builder = warp::http::Request::builder() - .method(lambda_method_to_warp_method(&parts.method)) - .uri(lambda_uri_to_warp_uri(&parts.uri)) - .version(lambda_version_to_warp_version(parts.version)); - - for (name, value) in parts.headers.iter() { - builder = builder.header(name.as_str(), value.as_bytes()); - } - let request = builder.body(()).unwrap(); - let (parts, _) = request.into_parts(); - parts -} - -fn warp_parts_to_lambda_parts( - parts: &warp::http::response::Parts, -) -> lambda_http::http::response::Parts { - let mut builder = lambda_http::http::Response::builder() - .status(parts.status.as_u16()) - .version(warp_version_to_lambda_version(parts.version)); - - for (name, value) in parts.headers.iter() { - builder = builder.header(name.as_str(), value.as_bytes()); - } - let response = builder.body(()).unwrap(); - let (parts, _) = response.into_parts(); - parts -} - -async fn warp_body_to_lambda_body( - parts: &lambda_http::http::response::Parts, - warp_body: B, -) -> Result -where - B: Body + Send, - B::Error: std::error::Error + Send + Sync + 'static, -{ - // Concatenate all bytes into a single buffer - let body_bytes = warp_body.collect().await?.to_bytes().to_vec(); - - // Attempt to determine the Content-Type - let content_type_opt: Option<&HeaderValue> = parts.headers.get("Content-Type"); - let content_encoding_opt: Option<&HeaderValue> = parts.headers.get("Content-Encoding"); - - // If Content-Encoding is present, assume compression - // If Content-Type is not present, don't assume is a string - if let (Some(content_type), None) = (content_type_opt, content_encoding_opt) { - let content_type_str = content_type.to_str()?; - let mime = content_type_str.parse::()?; - - if PLAINTEXT_MIMES.contains(&mime) || mime.type_() == mime::TEXT { - return Ok(LambdaBody::Text(String::from_utf8(body_bytes)?)); - } - } - // Not a text response, make binary - Ok(LambdaBody::Binary(body_bytes)) -} - -fn lambda_method_to_warp_method(method: &lambda_http::http::Method) -> warp::http::Method { - method.as_str().parse::().unwrap() -} - -fn lambda_uri_to_warp_uri(uri: &lambda_http::http::Uri) -> warp::http::Uri { - uri.to_string().parse::().unwrap() -} - -fn lambda_version_to_warp_version(version: lambda_http::http::Version) -> warp::http::Version { - if version == lambda_http::http::Version::HTTP_09 { - warp::http::Version::HTTP_09 - } else if version == lambda_http::http::Version::HTTP_10 { - warp::http::Version::HTTP_10 - } else if version == lambda_http::http::Version::HTTP_11 { - warp::http::Version::HTTP_11 - } else if version == lambda_http::http::Version::HTTP_2 { - warp::http::Version::HTTP_2 - } else if version == lambda_http::http::Version::HTTP_3 { - warp::http::Version::HTTP_3 - } else { - panic!("invalid HTTP version: {version:?}"); - } -} - -fn warp_version_to_lambda_version(version: warp::http::Version) -> lambda_http::http::Version { - if version == warp::http::Version::HTTP_09 { - lambda_http::http::Version::HTTP_09 - } else if version == warp::http::Version::HTTP_10 { - lambda_http::http::Version::HTTP_10 - } else if version == warp::http::Version::HTTP_11 { - lambda_http::http::Version::HTTP_11 - } else if version == warp::http::Version::HTTP_2 { - lambda_http::http::Version::HTTP_2 - } else if version == warp::http::Version::HTTP_3 { - lambda_http::http::Version::HTTP_3 - } else { - panic!("invalid HTTP version: {version:?}"); - } -} From 2ced1a406aa3bb3ed3925610945c88307ac1a285 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 9 Sep 2025 16:04:13 -0400 Subject: [PATCH 18/19] bug fix --- quickwit/Cargo.lock | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index dacc03c4e42..a5460b06d59 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -796,7 +796,6 @@ dependencies = [ "hyper-rustls 0.27.7", "hyper-util", "indexmap 2.11.1", - "indexmap 2.11.1", "pin-project-lite", "rustls 0.21.12", "rustls 0.23.31", @@ -2864,14 +2863,11 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" version = "0.3.14" -version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys 0.61.0", - "windows-sys 0.61.0", ] [[package]] @@ -3485,7 +3481,6 @@ dependencies = [ "futures-util", "http 0.2.12", "indexmap 2.11.1", - "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -3505,7 +3500,6 @@ dependencies = [ "futures-sink", "http 1.3.1", "indexmap 2.11.1", - "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -4106,10 +4100,8 @@ dependencies = [ [[package]] name = "indexmap" version = "2.11.1" -version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" -checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", "hashbrown 0.15.5", @@ -4149,7 +4141,6 @@ checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash 0.8.12", "indexmap 2.11.1", - "indexmap 2.11.1", "is-terminal", "itoa", "log", @@ -5873,7 +5864,6 @@ checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", "indexmap 2.11.1", - "indexmap 2.11.1", ] [[package]] @@ -6942,7 +6932,6 @@ dependencies = [ "fnv", "hex", "indexmap 2.11.1", - "indexmap 2.11.1", "itertools 0.14.0", "matches", "nom", @@ -8457,13 +8446,10 @@ dependencies = [ [[package]] name = "schannel" version = "0.1.28" -version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ "windows-sys 0.61.0", - "windows-sys 0.61.0", ] [[package]] @@ -8681,7 +8667,6 @@ version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ - "indexmap 2.11.1", "indexmap 2.11.1", "itoa", "memchr", @@ -8772,7 +8757,6 @@ dependencies = [ "hex", "indexmap 1.9.3", "indexmap 2.11.1", - "indexmap 2.11.1", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -8800,7 +8784,6 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.1", "indexmap 2.11.1", "itoa", "ryu", @@ -9153,7 +9136,6 @@ dependencies = [ "hashlink", "hex", "indexmap 2.11.1", - "indexmap 2.11.1", "log", "memchr", "once_cell", @@ -9724,13 +9706,10 @@ dependencies = [ [[package]] name = "term" version = "1.2.0" -version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" -checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" dependencies = [ "windows-sys 0.61.0", - "windows-sys 0.61.0", ] [[package]] @@ -10063,7 +10042,6 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.11.1", "indexmap 2.11.1", "serde", "serde_spanned", @@ -10077,7 +10055,6 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.1", "indexmap 2.11.1", "toml_datetime", "winnow 0.7.13", @@ -10247,7 +10224,6 @@ dependencies = [ "futures-core", "futures-util", "indexmap 2.11.1", - "indexmap 2.11.1", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -10602,7 +10578,6 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.11.1", "indexmap 2.11.1", "serde", "serde_json", @@ -10696,7 +10671,6 @@ dependencies = [ "iana-time-zone", "idna", "indexmap 2.11.1", - "indexmap 2.11.1", "indoc", "influxdb-line-protocol", "itertools 0.14.0", From 8d001e85bcd56c9247a9eec1e9a6f7f4e5f66e15 Mon Sep 17 00:00:00 2001 From: Abdul Andha Date: Tue, 9 Sep 2025 16:13:31 -0400 Subject: [PATCH 19/19] add accidentally removed file --- quickwit/quickwit-lambda/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 quickwit/quickwit-lambda/README.md diff --git a/quickwit/quickwit-lambda/README.md b/quickwit/quickwit-lambda/README.md new file mode 100644 index 00000000000..88fa9c8748a --- /dev/null +++ b/quickwit/quickwit-lambda/README.md @@ -0,0 +1,4 @@ +# Deprecation + +This package was removed in Q3 2025. The maintenance burden was high and the +feature was unused. \ No newline at end of file