From d69e9c0f2b094d0385bec17d7ae2290b2b8bacf6 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 15:08:58 -0400 Subject: [PATCH 01/26] refactor(pedm): modify `serve` arguments - `serve` arguments are changed - it now takes the `Config` struct instead of a path - pipe name is now part of `Config` rather than a direct argument - `Config` struct is now exported as `devolutions_pedm::Config` - it can be used by server implementations directly - `serve` is now exported as `devolutions_pedm::serve` --- crates/devolutions-pedm/src/api/mod.rs | 9 ++--- crates/devolutions-pedm/src/api/state.rs | 17 +++------ crates/devolutions-pedm/src/config.rs | 44 ++++++++++++++++-------- crates/devolutions-pedm/src/lib.rs | 9 +++-- 4 files changed, 45 insertions(+), 34 deletions(-) diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index 93f4e18f5..c146c80cf 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -12,7 +12,6 @@ use axum::extract::{ConnectInfo, Request}; use axum::middleware::{self, Next}; use axum::response::Response; use axum::{Json, Router}; -use camino::Utf8PathBuf; use futures_util::future::BoxFuture; use hyper_util::rt::{TokioExecutor, TokioIo}; use hyper_util::server; @@ -40,6 +39,7 @@ use revoke::post_revoke; use state::{AppState, AppStateError}; use status::get_status; +use crate::config::Config; use crate::db::DbError; use crate::error::{Error, ErrorResponse}; use crate::utils::AccountExt; @@ -94,7 +94,7 @@ async fn named_pipe_middleware( Ok(next.run(request).await) } -fn create_pipe(pipe_name: &'static str) -> anyhow::Result { +fn create_pipe(pipe_name: &str) -> anyhow::Result { let pipe = ServerOptions::new().write_dac(true).create(pipe_name)?; let dacl = Acl::new()?.set_entries(&[ @@ -165,8 +165,8 @@ async fn health_check() -> &'static str { "OK" } -pub async fn serve(pipe_name: &'static str, config_path: Option) -> Result<(), ServeError> { - let state = AppState::load(config_path).await?; +pub async fn serve(config: Config) -> Result<(), ServeError> { + let state = AppState::load(&config).await?; // a plain Axum router let hello_router = Router::new().route("/health", axum::routing::get(health_check)); @@ -178,6 +178,7 @@ pub async fn serve(pipe_name: &'static str, config_path: Option) -> let mut make_service = app.into_make_service_with_connect_info::(); + let pipe_name = &config.pipe_name; let mut server = create_pipe(pipe_name)?; // Log the server startup. diff --git a/crates/devolutions-pedm/src/api/state.rs b/crates/devolutions-pedm/src/api/state.rs index bf1be9d7d..2168c715b 100644 --- a/crates/devolutions-pedm/src/api/state.rs +++ b/crates/devolutions-pedm/src/api/state.rs @@ -4,7 +4,6 @@ use std::sync::Arc; use axum::extract::{FromRef, FromRequestParts}; use axum::http::request::Parts; -use camino::Utf8PathBuf; use hyper::StatusCode; use parking_lot::RwLock; use tracing::info; @@ -41,18 +40,12 @@ pub(crate) struct AppState { } impl AppState { - pub(crate) async fn load(config_path: Option) -> Result { - let config = if let Some(path) = config_path { - Config::load_from_path(&path) - } else { - Config::load_from_default_path() - }?; - + pub(crate) async fn load(config: &Config) -> Result { let db: Arc = match config.db { #[cfg(feature = "libsql")] DbBackend::Libsql => { #[expect(clippy::unwrap_used)] - let c = config.libsql.unwrap(); // already checked by `Config::validate` at the end of the load function + let c = config.libsql.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function let db_obj = libsql::Builder::new_local(&c.path) .build() .await @@ -64,15 +57,15 @@ impl AppState { #[cfg(feature = "postgres")] DbBackend::Postgres => { #[expect(clippy::unwrap_used)] - let c = config.postgres.unwrap(); // already checked by `Config::validate` at the end of the load function + let c = config.postgres.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function let mut pg_config = tokio_postgres::Config::new(); pg_config.host(&c.host); pg_config.dbname(&c.dbname); if let Some(n) = c.port { pg_config.port(n); } - pg_config.user(c.user); - if let Some(s) = c.password { + pg_config.user(&c.user); + if let Some(s) = &c.password { pg_config.password(s); } pg_config.ssl_mode(SslMode::Disable); diff --git a/crates/devolutions-pedm/src/config.rs b/crates/devolutions-pedm/src/config.rs index ec3f4dc09..fac1f7d44 100644 --- a/crates/devolutions-pedm/src/config.rs +++ b/crates/devolutions-pedm/src/config.rs @@ -7,32 +7,46 @@ use tracing::info; use crate::data_dir; +/// Specifies the default pipe name. +/// +/// This is a workaround for `serde(default)` not taking a raw string literal or escaped backslashes. +fn default_pipe_name() -> String { + "\\\\.\\pipe\\DevolutionsPEDM".to_owned() +} + /// The application config. #[derive(Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] -pub(crate) struct Config { +pub struct Config { /// The selected database backend. /// /// Only one can be active at a given time. - pub(crate) db: DbBackend, - pub(crate) postgres: Option, - pub(crate) libsql: Option, + pub db: DbBackend, + pub postgres: Option, + pub libsql: Option, + /// Specify the pipe name, if desired. + /// + /// Backslashes must be escaped, like "\\\\.\\pipe\\foo". + /// This field is intentionally omitted from the example configuration. + #[serde(default = "default_pipe_name")] + pub pipe_name: String, } impl Config { /// Creates a new config with the default values for a new setup. - fn standard() -> Self { + pub fn standard() -> Self { Self { db: DbBackend::default(), postgres: None, libsql: Some(LibsqlConfig { path: data_dir().join("pedm.sqlite"), }), + pipe_name: default_pipe_name(), } } /// Loads the config file from the specified path. - pub(crate) fn load_from_path(path: &Utf8Path) -> Result { + pub fn load_from_path(path: &Utf8Path) -> Result { match fs::read_to_string(path) { Ok(s) => { info!("Loading config from {path}"); @@ -51,7 +65,7 @@ impl Config { } /// Loads the config file from the default path. - pub(crate) fn load_from_default_path() -> Result { + pub fn load_from_default_path() -> Result { let path = data_dir().join("config.toml"); Self::load_from_path(&path) } @@ -91,20 +105,20 @@ impl fmt::Display for DbBackend { #[derive(Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] -pub(crate) struct LibsqlConfig { +pub struct LibsqlConfig { /// The path to the SQLite database file. - pub(crate) path: Utf8PathBuf, + pub path: Utf8PathBuf, } // TODO: SSL support #[derive(Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] -pub(crate) struct PgConfig { - pub(crate) host: String, - pub(crate) dbname: String, - pub(crate) port: Option, // 5432 if omitted - pub(crate) user: String, - pub(crate) password: Option, +pub struct PgConfig { + pub host: String, + pub dbname: String, + pub port: Option, // 5432 if omitted + pub user: String, + pub password: Option, } #[derive(Debug)] diff --git a/crates/devolutions-pedm/src/lib.rs b/crates/devolutions-pedm/src/lib.rs index 0f8a2408e..d14ee4a9a 100644 --- a/crates/devolutions-pedm/src/lib.rs +++ b/crates/devolutions-pedm/src/lib.rs @@ -1,11 +1,12 @@ use async_trait::async_trait; use camino::Utf8PathBuf; +pub use config::Config; use devolutions_gateway_task::{ShutdownSignal, Task}; cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { - pub mod api; + mod api; mod db; mod config; mod elevations; @@ -14,8 +15,10 @@ cfg_if::cfg_if! { mod log; mod policy; mod utils; - use tokio::select; + pub use api::serve; + + use tokio::select; use tracing::error; } } @@ -39,7 +42,7 @@ impl Task for PedmTask { cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { select! { - res = api::serve(r"\\.\pipe\DevolutionsPEDM", None) => { + res = serve(Config::standard()) => { if let Err(error) = &res { error!(%error, "Named pipe server got error"); } From c75a0dfc14214a0569171e8c8650eb4cda9708d8 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 15:33:05 -0400 Subject: [PATCH 02/26] Fix Linux build --- crates/devolutions-pedm/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/devolutions-pedm/src/lib.rs b/crates/devolutions-pedm/src/lib.rs index d14ee4a9a..d3c10f8ef 100644 --- a/crates/devolutions-pedm/src/lib.rs +++ b/crates/devolutions-pedm/src/lib.rs @@ -1,14 +1,16 @@ use async_trait::async_trait; use camino::Utf8PathBuf; -pub use config::Config; use devolutions_gateway_task::{ShutdownSignal, Task}; +mod config; +pub use config::Config; + cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { mod api; mod db; - mod config; + mod elevations; mod elevator; mod error; From f53a93cd9b3d0b3b4d43bf77661078c07fa75f07 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 15:39:32 -0400 Subject: [PATCH 03/26] Fix api module publicity This commit makes it public again. It is used by the generate-openapi tool in the `devolutions_pedm::api::openapi` call. --- crates/devolutions-pedm/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/devolutions-pedm/src/lib.rs b/crates/devolutions-pedm/src/lib.rs index d3c10f8ef..30b5ab05d 100644 --- a/crates/devolutions-pedm/src/lib.rs +++ b/crates/devolutions-pedm/src/lib.rs @@ -8,7 +8,7 @@ pub use config::Config; cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { - mod api; + pub mod api; mod db; mod elevations; From d5612b11204a5845617bd01e105e31f7480121a0 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 19:26:01 -0400 Subject: [PATCH 04/26] feature(pedm): SQL initialization - adds version tracking in the `pedm_schema_version` table - adds table initialization - error checking is strict and initialization only happens if the version table is not found - adds SQLite error handling for microsecond timestamp conversion to/from Chrono - fixes a bug in the libSQL schema where datetimes were stored incorrectly - they were being stored fractionally, instead of the full microseconds since epoch - adds `/about` endpoint to get basic info about the running application - I used this to ensure that the libsql date handling is functional A few other changes are included: - libsql feature set is changed (default is now false, "stream" removed) --- Cargo.lock | 1911 +++++++---------- crates/devolutions-pedm/Cargo.toml | 36 +- crates/devolutions-pedm/schema/libsql.sql | 47 +- crates/devolutions-pedm/schema/pg.sql | 21 +- crates/devolutions-pedm/src/api/about.rs | 24 + .../src/api/elevate_temporary.rs | 2 +- crates/devolutions-pedm/src/api/mod.rs | 41 +- crates/devolutions-pedm/src/api/state.rs | 84 +- crates/devolutions-pedm/src/db/err.rs | 82 +- crates/devolutions-pedm/src/db/libsql.rs | 74 +- crates/devolutions-pedm/src/db/mod.rs | 158 +- crates/devolutions-pedm/src/db/pg.rs | 34 +- crates/devolutions-pedm/src/lib.rs | 4 +- crates/devolutions-pedm/src/model.rs | 27 + 14 files changed, 1318 insertions(+), 1227 deletions(-) create mode 100644 crates/devolutions-pedm/src/api/about.rs create mode 100644 crates/devolutions-pedm/src/model.rs diff --git a/Cargo.lock b/Cargo.lock index 13dae28a6..c626a72cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,17 +88,17 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2477554ebf38aea815a9c4729100cfc32f766876c45b9c9c38ef221b9d1a703" dependencies = [ - "axum 0.8.3", - "axum-extra 0.10.1", - "bytes 1.10.1", + "axum 0.8.1", + "axum-extra 0.10.0", + "bytes 1.8.0", "cfg-if", - "http 1.3.1", - "indexmap 2.9.0", + "http 1.1.0", + "indexmap 2.6.0", "schemars", "serde", "serde_json", "serde_qs", - "thiserror 2.0.12", + "thiserror 2.0.3", "tower-layer", "tower-service", "tracing", @@ -127,9 +127,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "arc-swap" @@ -167,7 +167,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -176,9 +176,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "synstructure", ] @@ -188,9 +188,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "log", "pin-utils", "pkg-config", - "tokio 1.44.2", + "tokio 1.44.1", "winapi", ] @@ -218,9 +218,9 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -242,7 +242,7 @@ checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", ] [[package]] @@ -251,20 +251,20 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -293,26 +293,28 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.13.0" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b756939cb2f8dc900aa6dcd505e6e2428e9cae7ff7b028c49e3946efa70878" +checksum = "4cd755adf9707cf671e31d944a189be3deaaeee11c8bc1d669bb8022ac90fbd0" dependencies = [ "aws-lc-sys", + "paste", "untrusted 0.7.1", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.28.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f7720b74ed28ca77f90769a71fd8c637a0137f6fae4ae947e1050229cff57f" +checksum = "0f9dd2e03ee80ca2822dd6ea431163d2ef259f2066a4d6ccaca6d9dcb386aa43" dependencies = [ "bindgen 0.69.5", "cc", "cmake", "dunce", "fs_extra", + "paste", ] [[package]] @@ -324,17 +326,17 @@ dependencies = [ "async-trait", "axum-core 0.3.4", "bitflags 1.3.2", - "bytes 1.10.1", + "bytes 1.8.0", "futures-util", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.32", + "hyper 0.14.31", "itoa", "matchit 0.7.3", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "rustversion", "serde", "sync_wrapper 0.1.2", @@ -345,34 +347,34 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.9" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core 0.4.5", "base64 0.22.1", - "bytes 1.10.1", + "bytes 1.8.0", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.5.0", "hyper-util", "itoa", "matchit 0.7.3", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "rustversion", "serde", "serde_json", "serde_path_to_error", "serde_urlencoded", "sha1", - "sync_wrapper 1.0.2", - "tokio 1.44.2", + "sync_wrapper 1.0.1", + "tokio 1.44.1", "tokio-tungstenite", "tower 0.5.2", "tower-layer", @@ -382,32 +384,32 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de45108900e1f9b9242f7f2e254aa3e2c029c921c258fe9e6b4217eeebd54288" +checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" dependencies = [ - "axum-core 0.5.2", - "bytes 1.10.1", + "axum-core 0.5.0", + "bytes 1.8.0", "form_urlencoded", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.5.0", "hyper-util", "itoa", "matchit 0.8.4", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "rustversion", "serde", "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio 1.44.2", + "sync_wrapper 1.0.1", + "tokio 1.44.1", "tower 0.5.2", "tower-layer", "tower-service", @@ -421,7 +423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.10.1", + "bytes 1.8.0", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -438,15 +440,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.10.1", + "bytes 1.8.0", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "rustversion", - "sync_wrapper 1.0.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", "tracing", @@ -454,19 +456,19 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733" dependencies = [ - "bytes 1.10.1", - "futures-core", - "http 1.3.1", + "bytes 1.8.0", + "futures-util", + "http 1.1.0", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "rustversion", - "sync_wrapper 1.0.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", "tracing", @@ -474,47 +476,45 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.9.6" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" +checksum = "73c3220b188aea709cf1b6c5f9b01c3bd936bb08bd2b5184a12b35ac8131b1f9" dependencies = [ - "axum 0.7.9", + "axum 0.7.7", "axum-core 0.4.5", - "bytes 1.10.1", - "fastrand", + "bytes 1.8.0", "futures-util", "headers", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", "mime", - "multer", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "serde", "serde_html_form", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "tower 0.5.2", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-extra" -version = "0.10.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45bf463831f5131b7d3c756525b305d40f1185b688565648a92e1392ca35713d" +checksum = "460fc6f625a1f7705c6cf62d0d070794e94668988b1c38111baeec177c715f7b" dependencies = [ - "axum 0.8.3", - "axum-core 0.5.2", - "bytes 1.10.1", + "axum 0.8.1", + "axum-core 0.5.0", + "bytes 1.8.0", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.16", - "rustversion", + "pin-project-lite 0.2.15", "serde", "tower 0.5.2", "tower-layer", @@ -589,9 +589,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bb8" @@ -601,7 +601,7 @@ checksum = "212d8b8e1a22743d9241575c6ba822cf9c8fef34771c86ab7e477a4fbfd254e5" dependencies = [ "futures-util", "parking_lot", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -611,7 +611,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e570e6557cd0f88d28d32afa76644873271a70dc22656df565b2021c4036aa9c" dependencies = [ "bb8", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-postgres", ] @@ -630,7 +630,7 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cexpr", "clang-sys", "lazy_static", @@ -638,12 +638,12 @@ dependencies = [ "log", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.100", + "syn 2.0.87", "which", ] @@ -653,7 +653,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cexpr", "clang-sys", "itertools", @@ -661,29 +661,29 @@ dependencies = [ "lazycell", "log", "prettyplease", - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.100", + "syn 2.0.87", "which", ] [[package]] name = "bit-set" -version = "0.8.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.8.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bit_field" @@ -699,9 +699,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -744,9 +744,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -771,9 +771,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.10.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -807,9 +807,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.18" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ "jobserver", "libc", @@ -824,7 +824,7 @@ checksum = "42c08bc4ee8dce2878185fe1e6dc9b550a36ac3b4fa8c8e8546c4d8792d0176d" dependencies = [ "cfg-if", "chrono", - "core-foundation 0.9.4", + "core-foundation", "core-foundation-sys", "ctrlc", "libc", @@ -858,16 +858,17 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", - "windows-link", + "windows-targets 0.52.6", ] [[package]] @@ -893,9 +894,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.54" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" dependencies = [ "cc", ] @@ -925,16 +926,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -943,9 +934,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -974,18 +965,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1002,18 +993,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto" @@ -1068,9 +1059,9 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.6" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ "nix 0.29.0", "windows-sys 0.59.0", @@ -1098,22 +1089,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.17" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9724adfcf41f45bf652b3995837669d73c4d49a1b5ac1ff82905ac7d9b5558" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -1121,12 +1112,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.15" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" dependencies = [ "data-encoding", - "syn 2.0.100", + "syn 1.0.109", ] [[package]] @@ -1161,16 +1152,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "deranged" -version = "0.4.0" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -1182,8 +1173,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c9d94d81e3819a7b06a8638f448bc6339371ca9b6076a99d4a43eece3c4c923" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "syn 1.0.109", ] @@ -1223,9 +1214,9 @@ dependencies = [ "serde_json", "sha2", "tap", - "thiserror 1.0.69", - "tokio 1.44.2", - "tokio-rustls 0.26.2", + "thiserror 1.0.68", + "tokio 1.44.1", + "tokio-rustls", "tracing", "uuid", "win-api-wrappers", @@ -1240,10 +1231,10 @@ dependencies = [ "cfg-if", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.68", "uuid", "windows-registry 0.3.0", - "windows-result 0.2.0", + "windows-result", ] [[package]] @@ -1253,10 +1244,10 @@ dependencies = [ "anyhow", "argon2", "async-trait", - "axum 0.7.9", - "axum-extra 0.9.6", + "axum 0.7.7", + "axum-extra 0.9.4", "backoff", - "bytes 1.10.1", + "bytes 1.8.0", "cadeau", "camino", "ceviche", @@ -1271,9 +1262,9 @@ dependencies = [ "embed-resource", "etherparse", "futures", - "hostname 0.4.1", + "hostname 0.4.0", "http-body-util", - "hyper 1.6.0", + "hyper 1.5.0", "hyper-util", "ironrdp-core 0.1.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=7c268d863048d0a9182b3f7bf778668de8db4ccf)", @@ -1288,8 +1279,8 @@ dependencies = [ "parking_lot", "pcap-file", "picky", - "picky-krb 0.9.4", - "pin-project-lite 0.2.16", + "picky-krb 0.9.1", + "pin-project-lite 0.2.15", "portpicker", "proptest", "reqwest", @@ -1302,10 +1293,10 @@ dependencies = [ "sysinfo", "tap", "terminal-streamer", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", - "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio 1.44.1", + "tokio-rustls", "tokio-test", "tokio-tungstenite", "tower 0.5.2", @@ -1337,7 +1328,7 @@ name = "devolutions-gateway-task" version = "0.0.0" dependencies = [ "async-trait", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -1348,7 +1339,7 @@ dependencies = [ "async-trait", "camino", "devolutions-gateway-task", - "tokio 1.44.2", + "tokio 1.44.1", "tracing", "tracing-appender", "tracing-subscriber", @@ -1361,20 +1352,21 @@ dependencies = [ "aide", "anyhow", "async-trait", - "axum 0.8.3", + "axum 0.8.1", "base16ct", "base64 0.22.1", "bb8", "bb8-postgres", "camino", "cfg-if", + "chrono", "devolutions-agent-shared", "devolutions-gateway-task", "devolutions-pedm-shared", "digest", "dunce", "futures-util", - "hyper 1.6.0", + "hyper 1.5.0", "hyper-util", "libsql", "parking_lot", @@ -1383,7 +1375,7 @@ dependencies = [ "serde_json", "sha1", "sha2", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-postgres", "tower 0.5.2", "tower-http 0.5.2", @@ -1400,7 +1392,7 @@ dependencies = [ "base64 0.7.0", "futures", "http 0.2.12", - "hyper 0.14.32", + "hyper 0.14.31", "hyper-tls", "serde", "serde_json", @@ -1428,13 +1420,13 @@ dependencies = [ "devolutions-pedm-client-http", "dunce", "glob", - "hyper 0.14.32", - "pin-project 1.1.10", + "hyper 0.14.31", + "pin-project 1.1.7", "regex", "schemars", "serde", "serde_json", - "tokio 1.44.2", + "tokio 1.44.1", "tower 0.3.1", "uuid", "win-api-wrappers", @@ -1449,7 +1441,7 @@ dependencies = [ "embed-resource", "fs_extra", "parking_lot", - "tokio 1.44.2", + "tokio 1.44.1", "win-api-wrappers", "windows-core 0.58.0", ] @@ -1473,8 +1465,8 @@ dependencies = [ "serde_json", "tap", "tempfile", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tracing", "win-api-wrappers", "windows 0.58.0", @@ -1519,9 +1511,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -1576,9 +1568,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ebml-iterable" @@ -1604,8 +1596,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b066b81018300fdce40f71c4db355a102699324af96fad28f25ab1b5f87de066" dependencies = [ "ebml-iterable-specification", - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "syn 1.0.109", ] @@ -1650,9 +1642,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -1677,9 +1669,9 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.5.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379" +checksum = "f4e24052d7be71f0efb50c201557f6fe7d237cfd5a64fd5bcd7fd8fe32dbbffa" dependencies = [ "cc", "memchr", @@ -1689,29 +1681,20 @@ dependencies = [ "winreg 0.52.0", ] -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1743,15 +1726,15 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.3.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "ff" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", "subtle", @@ -1777,9 +1760,9 @@ dependencies = [ [[package]] name = "flagset" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" +checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" [[package]] name = "flume" @@ -1897,9 +1880,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -1933,7 +1916,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "pin-utils", "slab", ] @@ -1959,9 +1942,9 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +checksum = "dbb949699c3e4df3a183b1d2142cb24277057055ed23c68ed58894f76c517223" dependencies = [ "cfg-if", "libc", @@ -2001,11 +1984,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", - "wasm-bindgen", ] [[package]] @@ -2026,9 +2007,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "group" @@ -2047,34 +2028,34 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.9.0", + "indexmap 2.6.0", "slab", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "tracing", ] [[package]] name = "h2" -version = "0.4.8" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", - "bytes 1.10.1", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.9.0", + "http 1.1.0", + "indexmap 2.6.0", "slab", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "tracing", ] @@ -2097,9 +2078,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "hashlink" @@ -2117,9 +2098,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" dependencies = [ "base64 0.21.7", - "bytes 1.10.1", + "bytes 1.8.0", "headers-core", - "http 1.3.1", + "http 1.1.0", "httpdate", "mime", "sha1", @@ -2131,7 +2112,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 1.3.1", + "http 1.1.0", ] [[package]] @@ -2178,11 +2159,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2198,13 +2179,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ "cfg-if", "libc", - "windows-link", + "windows 0.52.0", ] [[package]] @@ -2213,18 +2194,18 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "fnv", "itoa", ] [[package]] name = "http" -version = "1.3.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "fnv", "itoa", ] @@ -2235,9 +2216,9 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "http 0.2.12", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", ] [[package]] @@ -2246,21 +2227,21 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.10.1", - "http 1.3.1", + "bytes 1.8.0", + "http 1.1.0", ] [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.10.1", - "futures-core", - "http 1.3.1", + "bytes 1.8.0", + "futures-util", + "http 1.1.0", "http-body 1.0.1", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", ] [[package]] @@ -2271,15 +2252,15 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "http-range-header" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" +checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "httparse" -version = "1.10.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -2289,17 +2270,17 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.32" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures-channel", "futures-core", "futures-util", @@ -2309,9 +2290,9 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "socket2", - "tokio 1.44.2", + "tokio 1.44.1", "tower-service", "tracing", "want", @@ -2319,58 +2300,40 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures-channel", "futures-util", - "h2 0.4.8", - "http 1.3.1", + "h2 0.4.6", + "http 1.1.0", "http-body 1.0.1", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "smallvec", - "tokio 1.44.2", + "tokio 1.44.1", "want", ] [[package]] name = "hyper-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "log", - "rustls 0.22.4", - "rustls-native-certs 0.7.3", - "rustls-pki-types", - "tokio 1.44.2", - "tokio-rustls 0.25.0", - "webpki-roots", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.5" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.3.1", - "hyper 1.6.0", + "http 1.1.0", + "hyper 1.5.0", "hyper-util", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", - "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio 1.44.1", + "tokio-rustls", "tower-service", ] @@ -2380,9 +2343,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.32", - "pin-project-lite 0.2.16", - "tokio 1.44.2", + "hyper 0.14.31", + "pin-project-lite 0.2.15", + "tokio 1.44.1", "tokio-io-timeout", ] @@ -2392,46 +2355,44 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.10.1", - "hyper 0.14.32", + "bytes 1.8.0", + "hyper 0.14.31", "native-tls", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-native-tls", ] [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures-channel", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", - "hyper 1.6.0", - "libc", - "pin-project-lite 0.2.16", + "hyper 1.5.0", + "pin-project-lite 0.2.15", "socket2", - "tokio 1.44.2", + "tokio 1.44.1", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log", "wasm-bindgen", - "windows-core 0.61.0", + "windows-core 0.52.0", ] [[package]] @@ -2484,9 +2445,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] name = "icu_normalizer" @@ -2508,9 +2469,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" @@ -2529,9 +2490,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" @@ -2556,9 +2517,9 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -2584,12 +2545,12 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.13.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b2eeee38fef3aa9b4cc5f1beea8a2444fc00e7377cafae396de3f5c2065e24" +checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2604,12 +2565,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.0", "serde", ] @@ -2635,9 +2596,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "block-padding", "generic-array", @@ -2659,16 +2620,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ "socket2", - "widestring 1.2.0", + "widestring 1.1.0", "windows-sys 0.48.0", "winreg 0.50.0", ] [[package]] name = "ipnet" -version = "2.11.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "ironrdp" @@ -2696,7 +2657,7 @@ name = "ironrdp-ainput" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "ironrdp-dvc", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "num-derive", @@ -2708,7 +2669,7 @@ name = "ironrdp-async" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "ironrdp-connector", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "tracing", @@ -2719,10 +2680,10 @@ name = "ironrdp-cliprdr" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "ironrdp-svc", - "thiserror 1.0.69", + "thiserror 1.0.68", "tracing", ] @@ -2802,7 +2763,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.6.0", "bitvec", "byteorder", "ironrdp-error 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", @@ -2810,7 +2771,7 @@ dependencies = [ "lazy_static", "num-derive", "num-traits", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -2819,7 +2780,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.6.0", "byteorder", "der-parser", "ironrdp-error 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", @@ -2831,7 +2792,7 @@ dependencies = [ "pkcs1", "sha1", "tap", - "thiserror 1.0.69", + "thiserror 1.0.68", "x509-cert", ] @@ -2841,7 +2802,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=7c268d863048d0a9182b3f7bf778668de8db4ccf#7c268d863048d0a9182b3f7bf778668de8db4ccf" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.6.0", "byteorder", "der-parser", "ironrdp-core 0.1.0", @@ -2854,7 +2815,7 @@ dependencies = [ "pkcs1", "sha1", "tap", - "thiserror 1.0.69", + "thiserror 1.0.68", "x509-cert", ] @@ -2871,7 +2832,7 @@ name = "ironrdp-rdpsnd" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "ironrdp-svc", "tracing", @@ -2894,8 +2855,8 @@ dependencies = [ "ironrdp-rdpsnd", "ironrdp-svc", "ironrdp-tokio", - "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio 1.44.1", + "tokio-rustls", "tracing", ] @@ -2904,7 +2865,7 @@ name = "ironrdp-svc" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", ] @@ -2913,9 +2874,9 @@ name = "ironrdp-tokio" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "ironrdp-async", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -2929,9 +2890,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jet-proto" @@ -2939,7 +2900,7 @@ version = "0.0.0" dependencies = [ "byteorder", "hex-literal", - "http 1.3.1", + "http 1.1.0", "httparse", "log", "uuid", @@ -2966,13 +2927,13 @@ dependencies = [ "proxy-types", "proxy_cfg", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile 2.2.0", "seahorse", "sysinfo", "test-utils", "tinyjson", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-tungstenite", "tracing", "tracing-appender", @@ -2994,7 +2955,7 @@ dependencies = [ name = "jmux-proto" version = "0.0.0" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "jmux-generators", "proptest", "smol_str", @@ -3006,10 +2967,10 @@ version = "0.0.0" dependencies = [ "anyhow", "bitvec", - "bytes 1.10.1", + "bytes 1.8.0", "futures-util", "jmux-proto", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "tracing", ] @@ -3043,21 +3004,19 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "getrandom 0.3.2", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ - "once_cell", "wasm-bindgen", ] @@ -3107,15 +3066,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -3123,9 +3082,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.11" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" @@ -3133,7 +3092,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "libc", "redox_syscall", ] @@ -3148,15 +3107,14 @@ dependencies = [ "async-trait", "base64 0.21.7", "bincode", - "bitflags 2.9.0", - "bytes 1.10.1", + "bitflags 2.6.0", + "bytes 1.8.0", "chrono", "crc32fast", "fallible-iterator 0.3.0", "futures", "http 0.2.12", - "hyper 0.14.32", - "hyper-rustls 0.25.0", + "hyper 0.14.31", "libsql-hrana", "libsql-sqlite3-parser", "libsql-sys", @@ -3164,8 +3122,8 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tokio-stream", "tokio-util", "tonic", @@ -3193,7 +3151,7 @@ version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ "base64 0.21.7", - "bytes 1.10.1", + "bytes 1.8.0", "prost", "serde", ] @@ -3203,7 +3161,7 @@ name = "libsql-rusqlite" version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "fallible-iterator 0.2.0", "fallible-streaming-iterator", "hashlink", @@ -3216,10 +3174,10 @@ name = "libsql-sqlite3-parser" version = "0.13.0" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cc", "fallible-iterator 0.3.0", - "indexmap 2.9.0", + "indexmap 2.6.0", "log", "memchr", "phf", @@ -3233,7 +3191,7 @@ name = "libsql-sys" version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "libsql-ffi", "libsql-rusqlite", "once_cell", @@ -3249,15 +3207,15 @@ dependencies = [ "aes", "async-stream", "async-trait", - "bytes 1.10.1", + "bytes 1.8.0", "cbc", "libsql-rusqlite", "libsql-sys", "parking_lot", "prost", "serde", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tokio-stream", "tokio-util", "tonic", @@ -3278,21 +3236,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.9.3" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.5" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] name = "lock_api" @@ -3306,9 +3258,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "loom" @@ -3424,9 +3376,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.7" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff70ce3e48ae43fa075863cef62e8b43b71a4f2382229920e0df362592919430" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", ] @@ -3445,10 +3397,11 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -3469,24 +3422,7 @@ name = "mock-net" version = "0.0.0" dependencies = [ "loom", - "tokio 1.44.2", -] - -[[package]] -name = "multer" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" -dependencies = [ - "bytes 1.10.1", - "encoding_rs", - "futures-util", - "http 1.3.1", - "httparse", - "memchr", - "mime", - "spin 0.9.8", - "version_check", + "tokio 1.44.1", ] [[package]] @@ -3509,21 +3445,21 @@ dependencies = [ "async-trait", "awaitdrop", "bitflags 1.3.2", - "bytes 1.10.1", + "bytes 1.8.0", "futures", - "pin-project 1.1.10", + "pin-project 1.1.7", "rand 0.8.5", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tokio-util", "tracing", ] [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ "libc", "log", @@ -3531,7 +3467,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] @@ -3570,45 +3506,46 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] name = "netlink-proto" -version = "0.11.5" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" +checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.12", + "thiserror 1.0.68", + "tokio 1.44.1", ] [[package]] name = "netlink-sys" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures", "libc", "log", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] name = "network-interface" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" +checksum = "433419f898328beca4f2c6c73a1b52540658d92b0a99f0269330457e0fd998d5" dependencies = [ "cc", "libc", - "thiserror 1.0.69", + "thiserror 1.0.68", "winapi", ] @@ -3630,8 +3567,8 @@ dependencies = [ "rtnetlink", "serde", "socket2", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tracing", "tracing-subscriber", "typed-builder", @@ -3644,10 +3581,10 @@ dependencies = [ "anyhow", "crossbeam", "parking_lot", - "polling 3.7.4", + "polling 3.7.3", "socket2", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tracing", "tracing-cov-mark", "tracing-subscriber", @@ -3671,7 +3608,7 @@ dependencies = [ "async-trait", "awaitdrop", "base64 0.13.1", - "bytes 1.10.1", + "bytes 1.8.0", "futures", "hostname 0.3.1", "muxado", @@ -3681,8 +3618,8 @@ dependencies = [ "rustls-pemfile 1.0.4", "serde", "serde_json", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tokio-retry", "tokio-util", "tracing", @@ -3695,7 +3632,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cfg-if", "libc", ] @@ -3706,7 +3643,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases", "libc", @@ -3734,7 +3671,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -3764,7 +3701,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063dca685ea8efa62d1a3566332b08be0198922f1d8aced1ead413c9f02fd89e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "ironrdp-core 0.1.4", "ironrdp-error 0.1.2", ] @@ -3828,9 +3765,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -3884,9 +3821,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -3902,9 +3839,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -3914,11 +3851,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -3933,22 +3870,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -3976,9 +3913,9 @@ dependencies = [ [[package]] name = "p384" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" dependencies = [ "ecdsa", "elliptic-curve", @@ -4059,7 +3996,7 @@ checksum = "1fc1f139757b058f9f37b76c48501799d12c9aa0aa4c0d4c980b062ee925d1b2" dependencies = [ "byteorder_slice", "derive-into-owned", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -4132,9 +4069,9 @@ dependencies = [ [[package]] name = "picky" -version = "7.0.0-rc.13" +version = "7.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ff00229e235526557077232ea50a8f619bbba9f3d37c7f63d1d41502546bec" +checksum = "83bb43d86c58d47730b66898120eccb28d135582f7676cc7038b4422bb8e323e" dependencies = [ "aes", "aes-gcm", @@ -4152,9 +4089,9 @@ dependencies = [ "p384", "p521", "pbkdf2", - "picky-asn1 0.10.1", - "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", + "picky-asn1 0.9.0", + "picky-asn1-der 0.5.0", + "picky-asn1-x509 0.14.0", "rand 0.8.5", "rand_core 0.6.4", "rc2", @@ -4164,7 +4101,7 @@ dependencies = [ "sha1", "sha2", "sha3", - "thiserror 1.0.69", + "thiserror 1.0.68", "x25519-dalek", "zeroize", ] @@ -4183,9 +4120,9 @@ dependencies = [ [[package]] name = "picky-asn1" -version = "0.10.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ff038f9360b934342fb3c0a1d6e82c438a2624b51c3c6e3e6d7cf252b6f3ee3" +checksum = "360019b238b11b8c0e88cd9db3a6677f1af122e3422d0a26a2b576f084d9be36" dependencies = [ "oid", "serde", @@ -4206,11 +4143,11 @@ dependencies = [ [[package]] name = "picky-asn1-der" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dccb53c26f70c082e008818f524bd45d057069517b047bd0c0ee062d6d7d7f2" +checksum = "04784987e157b5a8f832ce68b3364915dc6ef4bed94a6e10e241fa1bae3db2e3" dependencies = [ - "picky-asn1 0.10.1", + "picky-asn1 0.9.0", "serde", "serde_bytes", ] @@ -4226,20 +4163,20 @@ dependencies = [ "picky-asn1 0.8.0", "picky-asn1-der 0.4.1", "serde", - "widestring 1.2.0", + "widestring 1.1.0", ] [[package]] name = "picky-asn1-x509" -version = "0.14.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511c46b93e7f08571a375882879d3a468dfe8793d73249907b2e3332950cb33e" +checksum = "125a5aad54be4c07253cdfc64c480d636a60f216cb5853f03d84e12f3b6ec5f8" dependencies = [ "base64 0.22.1", "num-bigint-dig", "oid", - "picky-asn1 0.10.1", - "picky-asn1-der 0.5.2", + "picky-asn1 0.9.0", + "picky-asn1-der 0.5.0", "serde", "zeroize", ] @@ -4265,15 +4202,15 @@ dependencies = [ "rand 0.8.5", "serde", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.68", "uuid", ] [[package]] name = "picky-krb" -version = "0.9.4" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322b38c31330193b1d428df5b88f1b0d3d9e91548d302844c4f221dd839b1a7d" +checksum = "0f597160bc39865a91a3ad803abe926ac7ba7b11215099c72d403d1d82ec5390" dependencies = [ "aes", "byteorder", @@ -4284,13 +4221,13 @@ dependencies = [ "num-bigint-dig", "oid", "pbkdf2", - "picky-asn1 0.10.1", - "picky-asn1-der 0.5.2", - "picky-asn1-x509 0.14.3", + "picky-asn1 0.9.0", + "picky-asn1-der 0.5.0", + "picky-asn1-x509 0.14.0", "rand 0.8.5", "serde", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.68", "uuid", ] @@ -4305,11 +4242,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ - "pin-project-internal 1.1.10", + "pin-project-internal 1.1.7", ] [[package]] @@ -4318,20 +4255,20 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -4342,9 +4279,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -4375,9 +4312,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" @@ -4391,21 +4328,21 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "windows-sys 0.48.0", ] [[package]] name = "polling" -version = "3.7.4" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", - "pin-project-lite 0.2.16", - "rustix 0.38.44", + "pin-project-lite 0.2.15", + "rustix", "tracing", "windows-sys 0.59.0", ] @@ -4439,7 +4376,7 @@ checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" dependencies = [ "base64 0.22.1", "byteorder", - "bytes 1.10.1", + "bytes 1.8.0", "fallible-iterator 0.2.0", "hmac", "md-5", @@ -4455,7 +4392,8 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", + "chrono", "fallible-iterator 0.2.0", "postgres-protocol", ] @@ -4468,21 +4406,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.21" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.8.24", + "zerocopy 0.7.35", ] [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d" dependencies = [ - "proc-macro2 1.0.94", - "syn 2.0.100", + "proc-macro2 1.0.88", + "syn 2.0.87", ] [[package]] @@ -4496,9 +4434,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ "toml_edit", ] @@ -4510,8 +4448,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "syn 1.0.109", "version_check", ] @@ -4522,8 +4460,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "version_check", ] @@ -4538,22 +4476,22 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.6.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.0", + "bitflags 2.6.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -4571,7 +4509,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "prost-derive", ] @@ -4583,9 +4521,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -4600,12 +4538,12 @@ dependencies = [ name = "proxy-http" version = "0.0.0" dependencies = [ - "bytes 1.10.1", - "pin-project-lite 0.2.16", + "bytes 1.8.0", + "pin-project-lite 0.2.15", "proptest", "proxy-generators", "proxy-types", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -4615,7 +4553,7 @@ dependencies = [ "proxy-http", "proxy-socks", "proxy-types", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -4625,7 +4563,7 @@ dependencies = [ "proptest", "proxy-generators", "proxy-types", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-test", ] @@ -4635,7 +4573,7 @@ version = "0.0.0" dependencies = [ "proxy-http", "proxy-socks", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -4648,7 +4586,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4873cd217803ccb250f2563adf3f7a128a6a2039a0aeb2417a58130a079748b4" dependencies = [ - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", "url", "winapi", @@ -4663,51 +4601,45 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "bytes 1.10.1", - "cfg_aliases", - "pin-project-lite 0.2.16", + "bytes 1.8.0", + "pin-project-lite 0.2.15", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", + "rustc-hash 2.0.0", "rustls 0.23.25", "socket2", - "thiserror 2.0.12", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", "tracing", - "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.10" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "bytes 1.10.1", - "getrandom 0.3.2", - "rand 0.9.0", - "ring 0.17.14", - "rustc-hash 2.1.1", + "bytes 1.8.0", + "rand 0.8.5", + "ring 0.17.8", + "rustc-hash 2.0.0", "rustls 0.23.25", - "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 1.0.68", "tinyvec", "tracing", - "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.11" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ - "cfg_aliases", "libc", "once_cell", "socket2", @@ -4726,11 +4658,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "proc-macro2 1.0.94", + "proc-macro2 1.0.88", ] [[package]] @@ -4845,11 +4777,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", ] [[package]] @@ -4860,7 +4792,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror 1.0.69", + "thiserror 1.0.68", ] [[package]] @@ -4871,7 +4803,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", + "regex-automata 0.4.8", "regex-syntax 0.8.5", ] @@ -4886,9 +4818,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -4927,19 +4859,19 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", - "bytes 1.10.1", + "bytes 1.8.0", "futures-core", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper 1.5.0", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -4947,27 +4879,26 @@ dependencies = [ "mime", "once_cell", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "quinn", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio 1.44.2", - "tokio-rustls 0.26.2", + "sync_wrapper 1.0.1", + "tokio 1.44.1", + "tokio-rustls", "tokio-util", - "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "windows-registry 0.4.0", + "windows-registry 0.2.0", ] [[package]] @@ -5013,23 +4944,24 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.14" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", + "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ "const-oid", "digest", @@ -5066,12 +4998,12 @@ dependencies = [ "cfg-if", "glob", "proc-macro-crate", - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "regex", "relative-path", "rustc_version", - "syn 2.0.100", + "syn 2.0.87", "unicode-ident", ] @@ -5089,8 +5021,8 @@ dependencies = [ "netlink-proto", "netlink-sys", "nix 0.27.1", - "thiserror 1.0.69", - "tokio 1.44.2", + "thiserror 1.0.68", + "tokio 1.44.1", ] [[package]] @@ -5107,9 +5039,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" @@ -5131,28 +5063,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.0.5" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.9.3", - "windows-sys 0.59.0", + "linux-raw-sys", + "windows-sys 0.52.0", ] [[package]] @@ -5167,20 +5086,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.14", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.25" @@ -5190,18 +5095,18 @@ dependencies = [ "aws-lc-rs", "log", "once_cell", - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-cng" -version = "0.5.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c742cb7d8e43daae2dd9ca4b1da442b4500a461ce1c84249e6ac99b4bc12562e" +checksum = "70f1ff9ad152a0a9bc9c81f2b0b4b0b6399df856788b31fb9d1b5c1e8620c749" dependencies = [ "rustls 0.23.25", "sha2", @@ -5210,27 +5115,15 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework 2.11.1", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework 3.2.0", + "security-framework", ] [[package]] @@ -5256,38 +5149,24 @@ name = "rustls-pki-types" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" -dependencies = [ - "web-time", -] [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring 0.17.14", - "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" dependencies = [ "aws-lc-rs", - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rusty-fork" @@ -5303,9 +5182,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safemem" @@ -5324,21 +5203,22 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "schemars" -version = "0.8.22" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ + "chrono", "dyn-clone", - "indexmap 2.9.0", + "indexmap 2.6.0", "schemars_derive", "serde", "serde_json", @@ -5347,14 +5227,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.22" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "serde_derive_internals", - "syn 2.0.100", + "syn 2.0.87", ] [[package]] @@ -5375,7 +5255,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.14", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -5405,21 +5285,8 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" -dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.6.0", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -5427,9 +5294,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -5437,9 +5304,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" @@ -5452,9 +5319,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] @@ -5465,9 +5332,9 @@ version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -5476,19 +5343,19 @@ version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "serde_html_form" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2de91cf02bbc07cde38891769ccd5d4f073d22a40683aa4bc7a95781aaa2c4" +checksum = "8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5" dependencies = [ "form_urlencoded", - "indexmap 2.9.0", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -5508,9 +5375,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" dependencies = [ "itoa", "serde", @@ -5522,11 +5389,11 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b417bedc008acbdf6d6b4bc482d29859924114bbe2650b7921fb68a261d0aa6" dependencies = [ - "axum 0.8.3", + "axum 0.8.1", "futures", "percent-encoding", "serde", - "thiserror 2.0.12", + "thiserror 2.0.3", ] [[package]] @@ -5556,7 +5423,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -5661,9 +5528,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol_str" @@ -5676,9 +5543,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5717,7 +5584,7 @@ checksum = "18d31fab47d9290be28a8d027c8428756826f1d4fe1e5ba0f51d24f52c568e21" dependencies = [ "async-dnssd", "async-recursion", - "bitflags 2.9.0", + "bitflags 2.6.0", "byteorder", "cfg-if", "crypto-mac", @@ -5741,7 +5608,7 @@ dependencies = [ "sha1", "sha2", "time", - "tokio 1.44.2", + "tokio 1.44.1", "tracing", "url", "uuid", @@ -5792,19 +5659,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.100" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", + "proc-macro2 1.0.88", + "quote 1.0.37", "unicode-ident", ] @@ -5816,9 +5683,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" dependencies = [ "futures-core", ] @@ -5829,9 +5696,9 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -5867,14 +5734,14 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.19.1" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ + "cfg-if", "fastrand", - "getrandom 0.3.2", "once_cell", - "rustix 1.0.5", + "rustix", "windows-sys 0.59.0", ] @@ -5883,7 +5750,7 @@ name = "terminal-streamer" version = "0.1.0" dependencies = [ "anyhow", - "tokio 1.44.2", + "tokio 1.44.1", "tracing", ] @@ -5895,49 +5762,49 @@ dependencies = [ "futures-util", "portpicker", "proptest", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-tungstenite", "transport", ] [[package]] name = "thiserror" -version = "1.0.69" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ - "thiserror-impl 1.0.69", + "thiserror-impl 1.0.68", ] [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -5952,9 +5819,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -5969,15 +5836,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -6010,9 +5877,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -6025,9 +5892,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tls_codec" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +checksum = "b5e78c9c330f8c85b2bae7c8368f2739157db9991235123aa1b15ef9502bfb6a" dependencies = [ "tls_codec_derive", "zeroize", @@ -6035,13 +5902,13 @@ dependencies = [ [[package]] name = "tls_codec_derive" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +checksum = "8d9ef545650e79f30233c0003bcc2504d7efac6dad25fca40744de773fe2049c" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -6058,16 +5925,16 @@ dependencies = [ [[package]] name = "tokio" -version = "1.44.2" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", - "bytes 1.10.1", + "bytes 1.8.0", "libc", - "mio 1.0.3", + "mio 1.0.2", "parking_lot", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "signal-hook-registry", "socket2", "tokio-macros", @@ -6081,8 +5948,8 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "pin-project-lite 0.2.16", - "tokio 1.44.2", + "pin-project-lite 0.2.15", + "tokio 1.44.1", ] [[package]] @@ -6091,9 +5958,9 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -6103,7 +5970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -6114,7 +5981,7 @@ checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" dependencies = [ "async-trait", "byteorder", - "bytes 1.10.1", + "bytes 1.8.0", "fallible-iterator 0.2.0", "futures-channel", "futures-util", @@ -6122,12 +5989,12 @@ dependencies = [ "parking_lot", "percent-encoding", "phf", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "postgres-protocol", "postgres-types", "rand 0.9.0", "socket2", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "whoami", ] @@ -6138,20 +6005,9 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ - "pin-project 1.1.10", + "pin-project 1.1.7", "rand 0.8.5", - "tokio 1.44.2", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] @@ -6161,18 +6017,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls 0.23.25", - "tokio 1.44.2", + "tokio 1.44.1", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", - "pin-project-lite 0.2.16", - "tokio 1.44.2", + "pin-project-lite 0.2.15", + "tokio 1.44.1", ] [[package]] @@ -6182,9 +6038,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", - "bytes 1.10.1", + "bytes 1.8.0", "futures-core", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-stream", ] @@ -6198,11 +6054,11 @@ dependencies = [ "log", "native-tls", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-native-tls", - "tokio-rustls 0.26.2", + "tokio-rustls", "tungstenite", ] @@ -6212,19 +6068,19 @@ version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ - "bytes 1.10.1", + "bytes 1.8.0", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.16", - "tokio 1.44.2", + "pin-project-lite 0.2.15", + "tokio 1.44.1", ] [[package]] name = "toml" -version = "0.8.20" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", @@ -6243,11 +6099,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -6264,16 +6120,16 @@ dependencies = [ "async-trait", "axum 0.6.20", "base64 0.21.7", - "bytes 1.10.1", + "bytes 1.8.0", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.32", + "hyper 0.14.31", "hyper-timeout", "percent-encoding", - "pin-project 1.1.10", + "pin-project 1.1.7", "prost", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -6288,11 +6144,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1" dependencies = [ "base64 0.21.7", - "bytes 1.10.1", + "bytes 1.8.0", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.32", - "pin-project 1.1.10", + "hyper 0.14.31", + "pin-project 1.1.7", "tokio-stream", "tonic", "tower-http 0.4.4", @@ -6328,11 +6184,11 @@ dependencies = [ "futures-core", "futures-util", "indexmap 1.9.3", - "pin-project 1.1.10", - "pin-project-lite 0.2.16", + "pin-project 1.1.7", + "pin-project-lite 0.2.15", "rand 0.8.5", "slab", - "tokio 1.44.2", + "tokio 1.44.1", "tokio-util", "tower-layer", "tower-service", @@ -6347,9 +6203,9 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "pin-project-lite 0.2.16", - "sync_wrapper 1.0.2", - "tokio 1.44.2", + "pin-project-lite 0.2.15", + "sync_wrapper 1.0.1", + "tokio 1.44.1", "tower-layer", "tower-service", "tracing", @@ -6386,14 +6242,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.9.0", - "bytes 1.10.1", + "bitflags 2.6.0", + "bytes 1.8.0", "futures-core", "futures-util", "http 0.2.12", "http-body 0.4.6", "http-range-header 0.3.1", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "tower 0.4.13", "tower-layer", "tower-service", @@ -6406,19 +6262,19 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.9.0", - "bytes 1.10.1", + "bitflags 2.6.0", + "bytes 1.8.0", "futures-util", - "http 1.3.1", + "http 1.1.0", "http-body 1.0.1", "http-body-util", - "http-range-header 0.4.2", + "http-range-header 0.4.1", "httpdate", "mime", "mime_guess", "percent-encoding", - "pin-project-lite 0.2.16", - "tokio 1.44.2", + "pin-project-lite 0.2.15", + "tokio 1.44.1", "tokio-util", "tower-layer", "tower-service", @@ -6521,7 +6377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "tracing-attributes", "tracing-core", ] @@ -6532,7 +6388,7 @@ version = "0.2.999" source = "git+https://github.com/CBenoit/tracing.git?rev=42097daf92e683cf18da7639ddccb056721a796c#42097daf92e683cf18da7639ddccb056721a796c" dependencies = [ "crossbeam-channel", - "thiserror 1.0.69", + "thiserror 1.0.68", "time", "tracing-subscriber", ] @@ -6543,9 +6399,9 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -6605,10 +6461,10 @@ dependencies = [ "futures-sink", "futures-util", "parking_lot", - "pin-project-lite 0.2.16", + "pin-project-lite 0.2.15", "proptest", "test-utils", - "tokio 1.44.2", + "tokio 1.44.1", "tracing", ] @@ -6625,9 +6481,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", - "bytes 1.10.1", + "bytes 1.8.0", "data-encoding", - "http 1.3.1", + "http 1.1.0", "httparse", "log", "native-tls", @@ -6635,7 +6491,7 @@ dependencies = [ "rustls 0.23.25", "rustls-pki-types", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.68", "utf-8", ] @@ -6654,24 +6510,25 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "typenum" -version = "1.18.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ulid" -version = "1.2.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" +checksum = "04f903f293d11f31c0c29e4148f6dc0d033a7f80cebc0282bea147611667d289" dependencies = [ - "rand 0.9.0", + "getrandom 0.2.15", + "rand 0.8.5", "uuid", "web-time", ] @@ -6693,9 +6550,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.8.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bidi" @@ -6705,9 +6562,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -6760,9 +6617,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -6794,7 +6651,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.6.0", "serde", "serde_json", "serde_yaml", @@ -6808,27 +6665,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "uuid", ] [[package]] name = "uuid" -version = "1.16.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.2.15", "serde", ] [[package]] name = "valuable" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "vcpkg" @@ -6847,14 +6704,14 @@ name = "video-streamer" version = "0.0.0" dependencies = [ "anyhow", - "axum 0.7.9", + "axum 0.7.7", "cadeau", "ebml-iterable", "futures", "futures-util", "num_cpus", - "thiserror 2.0.12", - "tokio 1.44.2", + "thiserror 2.0.3", + "tokio 1.44.1", "tokio-tungstenite", "tokio-util", "tracing", @@ -6875,9 +6732,9 @@ dependencies = [ [[package]] name = "vswhom-sys" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" dependencies = [ "cc", "libc", @@ -6885,9 +6742,9 @@ dependencies = [ [[package]] name = "wait-timeout" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] @@ -6934,80 +6791,76 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", - "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "once_cell", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ - "quote 1.0.40", + "quote 1.0.37", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ "futures-util", "js-sys", @@ -7018,9 +6871,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -7051,19 +6904,10 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.14", + "ring 0.17.8", "untrusted 0.9.0", ] -[[package]] -name = "webpki-roots" -version = "0.26.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "which" version = "4.4.2" @@ -7073,7 +6917,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.44", + "rustix", ] [[package]] @@ -7095,9 +6939,9 @@ checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" [[package]] name = "widestring" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "win-api-wrappers" @@ -7106,10 +6950,10 @@ dependencies = [ "anyhow", "base16ct", "rstest", - "thiserror 1.0.69", + "thiserror 1.0.68", "tracing", "uuid", - "widestring 1.2.0", + "widestring 1.1.0", "windows 0.58.0", ] @@ -7198,46 +7042,22 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", + "windows-implement", + "windows-interface", + "windows-result", "windows-strings 0.1.0", "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", -] - [[package]] name = "windows-implement" version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -7246,35 +7066,18 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] -[[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - [[package]] name = "windows-registry" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -7285,22 +7088,11 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-strings 0.2.0", "windows-targets 0.52.6", ] -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result 0.3.2", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - [[package]] name = "windows-result" version = "0.2.0" @@ -7310,22 +7102,13 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result 0.2.0", + "windows-result", "windows-targets 0.52.6", ] @@ -7338,24 +7121,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -7431,29 +7196,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -7472,12 +7221,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -7496,12 +7239,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -7520,24 +7257,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -7556,12 +7281,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -7580,12 +7299,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -7604,12 +7317,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -7628,17 +7335,11 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" -version = "0.7.6" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -7688,7 +7389,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.6.0", ] [[package]] @@ -7747,9 +7448,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" dependencies = [ "serde", "stable_deref_trait", @@ -7759,13 +7460,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "synstructure", ] @@ -7794,9 +7495,9 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -7805,29 +7506,29 @@ version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", "synstructure", ] @@ -7846,9 +7547,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] [[package]] @@ -7868,7 +7569,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "proc-macro2 1.0.94", - "quote 1.0.40", - "syn 2.0.100", + "proc-macro2 1.0.88", + "quote 1.0.37", + "syn 2.0.87", ] diff --git a/crates/devolutions-pedm/Cargo.toml b/crates/devolutions-pedm/Cargo.toml index 972212eb4..59a5579b7 100644 --- a/crates/devolutions-pedm/Cargo.toml +++ b/crates/devolutions-pedm/Cargo.toml @@ -11,13 +11,24 @@ publish = false [dependencies] anyhow = "1.0" -axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "query", "tracing", "tower-log", "form", "original-uri", "matched-path"] } +axum = { version = "0.8", default-features = false, features = [ + "http1", + "json", + "tokio", + "query", + "tracing", + "tower-log", + "form", + "original-uri", + "matched-path", +] } base16ct = { version = "0.2", features = ["std", "alloc"] } base64 = "0.22" +chrono = { version = "0.4", features = ["serde"] } digest = "0.10" hyper = { version = "1.3", features = ["server"] } hyper-util = { version = "0.1", features = ["tokio"] } -schemars = "0.8" +schemars = { version = "0.8", features = ["chrono"] } serde = "1.0" serde_json = "1.0" sha1 = "0.10" @@ -25,13 +36,20 @@ sha2 = "0.10" tokio = { version = "1.44", features = ["net", "rt-multi-thread"] } tower-service = "0.3" win-api-wrappers = { path = "../win-api-wrappers" } -devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = ["policy"]} +devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = [ + "policy", +] } devolutions-gateway-task = { path = "../devolutions-gateway-task" } devolutions-agent-shared = { path = "../devolutions-agent-shared" } camino = { version = "1", features = ["serde1"] } async-trait = "0.1" tracing = "0.1" -aide = { version = "0.14", features = ["axum", "axum-extra", "axum-json", "axum-tokio"] } +aide = { version = "0.14", features = [ + "axum", + "axum-extra", + "axum-json", + "axum-tokio", +] } tower-http = { version = "0.5", features = ["timeout"] } parking_lot = "0.12" cfg-if = "1.0" @@ -39,10 +57,12 @@ uuid = "1" dunce = "1.0" tower = "0.5" futures-util = "0.3" -libsql = { version = "0.9", optional = true, features = [ "core", "stream"] } -tokio-postgres = { version = "0.7", optional = true } -bb8 = { version = "0.9.0", optional = true } -bb8-postgres = { version = "0.9.0", optional = true } +libsql = { version = "0.9", optional = true, default-features = false, features = ["core", "sync"] } +tokio-postgres = { version = "0.7", optional = true, features = [ + "with-chrono-0_4", +] } +bb8 = { version = "0.9", optional = true } +bb8-postgres = { version = "0.9", optional = true } [features] default = ["libsql"] diff --git a/crates/devolutions-pedm/schema/libsql.sql b/crates/devolutions-pedm/schema/libsql.sql index 0c999b0ba..8a80e1d15 100644 --- a/crates/devolutions-pedm/schema/libsql.sql +++ b/crates/devolutions-pedm/schema/libsql.sql @@ -1,20 +1,39 @@ -/* In SQLite, we store time as integer with microsecond precision. This is the same precision used by TIMESTAMPTZ in Postgres. */ +/* In SQLite, we store time as an 8-byte integer (i64) with microsecond precision. This matches TIMESTAMPTZ in Postgres. + Use `chrono::DateTime::timestamp_micros` when inserting or fetching timestamps in Rust. +*/ -CREATE TABLE pedm_run ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - start_time INTEGER NOT NULL DEFAULT (CAST(strftime('%f', 'now') * 1000000 AS INTEGER)), - pipe_name TEXT NOT NULL +CREATE TABLE IF NOT EXISTS pedm_schema_version +( + version integer PRIMARY KEY, + updated_at integer NOT NULL DEFAULT ( + CAST(strftime('%s', 'now') AS integer) * 1000000 + CAST(strftime('%f', 'now') * 1000000 AS integer) % 1000000 + ) ); -CREATE TABLE http_request ( - id INTEGER PRIMARY KEY, - at INTEGER NOT NULL DEFAULT (CAST(strftime('%f', 'now') * 1000000 AS INTEGER)), - method TEXT NOT NULL, - path TEXT NOT NULL, - status_code INTEGER NOT NULL +CREATE TABLE IF NOT EXISTS pedm_run +( + id integer PRIMARY KEY AUTOINCREMENT, + start_time integer NOT NULL DEFAULT ( + CAST(strftime('%s', 'now') AS integer) * 1000000 + CAST(strftime('%f', 'now') * 1000000 AS integer) % 1000000 + ), + pipe_name text NOT NULL ); -CREATE TABLE elevate_tmp_request ( - req_id INTEGER PRIMARY KEY, - seconds INTEGER NOT NULL +CREATE TABLE IF NOT EXISTS http_request +( + id integer PRIMARY KEY, + at integer NOT NULL DEFAULT ( + CAST(strftime('%s', 'now') AS integer) * 1000000 + CAST(strftime('%f', 'now') * 1000000 AS integer) % 1000000 + ), + method text NOT NULL, + path text NOT NULL, + status_code integer NOT NULL ); + +CREATE TABLE IF NOT EXISTS elevate_tmp_request +( + req_id integer PRIMARY KEY, + seconds integer NOT NULL +); + +INSERT INTO pedm_schema_version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/schema/pg.sql b/crates/devolutions-pedm/schema/pg.sql index 6c74949b6..52feb736f 100644 --- a/crates/devolutions-pedm/schema/pg.sql +++ b/crates/devolutions-pedm/schema/pg.sql @@ -1,22 +1,31 @@ +CREATE TABLE IF NOT EXISTS pedm_schema_version +( + version smallint PRIMARY KEY, + add_time timestamptz NOT NULL DEFAULT NOW() +); + /* The startup of the server */ -CREATE TABLE pedm_run +CREATE TABLE IF NOT EXISTS pedm_run ( id int PRIMARY KEY GENERATED ALWAYS AS IDENTITY, start_time timestamptz NOT NULL DEFAULT NOW(), pipe_name text NOT NULL ); -CREATE TABLE http_request +CREATE TABLE IF NOT EXISTS http_request ( id integer PRIMARY KEY, at timestamptz NOT NULL DEFAULT NOW(), method text NOT NULL, - path text NOT NULL, + path text NOT NULL, status_code smallint NOT NULL ); -CREATE TABLE elevate_tmp_request +/* The request ID is `http_request(id)` but the http_request INSERT only executes in middleware after the response, so we don't use a FK. */ +CREATE TABLE IF NOT EXISTS elevate_tmp_request ( - req_id integer PRIMARY KEY, /* this is http_request but the http_request INSERT only executes in middleware after the response, so we don't use a FK */ + req_id integer PRIMARY KEY, seconds int NOT NULL -); \ No newline at end of file +); + +INSERT INTO pedm_schema_version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/src/api/about.rs b/crates/devolutions-pedm/src/api/about.rs new file mode 100644 index 000000000..bb81ab0dd --- /dev/null +++ b/crates/devolutions-pedm/src/api/about.rs @@ -0,0 +1,24 @@ +use std::sync::atomic::Ordering; + +use aide::NoApi; +use axum::extract::State; +use axum::Json; + +use super::err::HandlerError; +use super::state::AppState; +use crate::db::Db; +use crate::model::AboutData; + +/// Gets info about the current state of the application. +pub(crate) async fn about( + NoApi(State(state)): NoApi>, + NoApi(Db(db)): NoApi, +) -> Result, HandlerError> { + let requests_received = state.req_counter.load(Ordering::Relaxed) - state.startup_info.request_count; + + Ok(Json(AboutData { + startup_info: state.startup_info, + requests_received, + last_request_time: db.get_last_request_time().await?, + })) +} diff --git a/crates/devolutions-pedm/src/api/elevate_temporary.rs b/crates/devolutions-pedm/src/api/elevate_temporary.rs index b193acdf9..df3258329 100644 --- a/crates/devolutions-pedm/src/api/elevate_temporary.rs +++ b/crates/devolutions-pedm/src/api/elevate_temporary.rs @@ -9,11 +9,11 @@ use parking_lot::RwLock; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; +use crate::db::Db; use crate::elevations; use crate::policy::Policy; use super::err::HandlerError; -use super::state::Db; use super::NamedPipeConnectInfo; #[derive(Deserialize, Serialize, JsonSchema, Debug)] diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index c146c80cf..1fdbc3492 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -32,18 +32,12 @@ use win_api_wrappers::token::Token; use win_api_wrappers::undoc::PIPE_ACCESS_FULL_CONTROL; use win_api_wrappers::utils::Pipe; -use elevate_session::elevate_session; -use elevate_temporary::elevate_temporary; -use launch::post_launch; -use revoke::post_revoke; -use state::{AppState, AppStateError}; -use status::get_status; - use crate::config::Config; -use crate::db::DbError; +use crate::db::{Db, DbError, InitSchemaError}; use crate::error::{Error, ErrorResponse}; use crate::utils::AccountExt; +mod about; mod elevate_session; mod elevate_temporary; mod err; @@ -53,6 +47,14 @@ mod revoke; pub(crate) mod state; mod status; +use about::about; +use elevate_session::elevate_session; +use elevate_temporary::elevate_temporary; +use launch::post_launch; +use revoke::post_revoke; +use state::{AppState, AppStateError}; +use status::get_status; + #[derive(Debug, Clone)] struct NamedPipeConnectInfo { pub(crate) user: User, @@ -132,6 +134,7 @@ fn create_pipe(pipe_name: &str) -> anyhow::Result { pub(crate) fn api_router() -> ApiRouter { ApiRouter::new() + .api_route("/about", aide::axum::routing::get(about)) .api_route("/elevate/temporary", aide::axum::routing::post(elevate_temporary)) .api_route("/elevate/session", aide::axum::routing::post(elevate_session)) .api_route("/launch", aide::axum::routing::post(post_launch)) @@ -165,8 +168,12 @@ async fn health_check() -> &'static str { "OK" } +/// Initializes the appliation and starts the named pipe server. pub async fn serve(config: Config) -> Result<(), ServeError> { - let state = AppState::load(&config).await?; + let db = Db::new(&config).await?; + db.init_schema().await?; + + let state = AppState::new(db, &config.pipe_name).await?; // a plain Axum router let hello_router = Router::new().route("/health", axum::routing::get(health_check)); @@ -182,11 +189,11 @@ pub async fn serve(config: Config) -> Result<(), ServeError> { let mut server = create_pipe(pipe_name)?; // Log the server startup. - let run_id = state.db.log_server_startup(pipe_name).await?; - info!("Started server at {pipe_name} with run ID {run_id}"); + info!("Started named pipe server with name `{pipe_name}`"); info!( - "Starting request ID counter at {}", - state.req_counter.load(Ordering::Relaxed) + "Run ID is {run_id}, request ID counter is {req_count}", + run_id = state.startup_info.run_id, + req_count = state.req_counter.load(Ordering::Relaxed) ); loop { @@ -219,6 +226,7 @@ pub enum ServeError { TokioIo(tokio::io::Error), AppState(AppStateError), Db(DbError), + InitSchema(InitSchemaError), Other(anyhow::Error), } @@ -228,6 +236,7 @@ impl core::error::Error for ServeError { Self::TokioIo(e) => Some(e), Self::AppState(e) => Some(e), Self::Db(e) => Some(e), + Self::InitSchema(e) => Some(e), Self::Other(e) => Some(e.as_ref()), } } @@ -239,6 +248,7 @@ impl fmt::Display for ServeError { Self::TokioIo(e) => e.fmt(f), Self::AppState(e) => e.fmt(f), Self::Db(e) => e.fmt(f), + Self::InitSchema(e) => e.fmt(f), Self::Other(e) => e.fmt(f), } } @@ -259,6 +269,11 @@ impl From for ServeError { Self::Db(e) } } +impl From for ServeError { + fn from(e: InitSchemaError) -> Self { + Self::InitSchema(e) + } +} impl From for ServeError { fn from(e: anyhow::Error) -> Self { Self::Other(e) diff --git a/crates/devolutions-pedm/src/api/state.rs b/crates/devolutions-pedm/src/api/state.rs index 2168c715b..73b84b531 100644 --- a/crates/devolutions-pedm/src/api/state.rs +++ b/crates/devolutions-pedm/src/api/state.rs @@ -4,31 +4,18 @@ use std::sync::Arc; use axum::extract::{FromRef, FromRequestParts}; use axum::http::request::Parts; +use chrono::Utc; use hyper::StatusCode; use parking_lot::RwLock; -use tracing::info; -use crate::config::{Config, ConfigError, DbBackend}; -use crate::db::{Database, DbError}; +use crate::db::{Database, Db, DbError}; +use crate::model::StartupInfo; use crate::policy::{LoadPolicyError, Policy}; -#[cfg(feature = "libsql")] -use crate::db::LibsqlConn; - -#[cfg(feature = "postgres")] -use bb8::Pool; -#[cfg(feature = "postgres")] -use bb8_postgres::PostgresConnectionManager; -#[cfg(feature = "postgres")] -use tokio_postgres::config::SslMode; -#[cfg(feature = "postgres")] -use tokio_postgres::NoTls; - -#[cfg(feature = "postgres")] -use crate::db::PgPool; - +/// Axum application state. #[derive(Clone)] pub(crate) struct AppState { + pub(crate) startup_info: StartupInfo, /// Request counter. /// /// The current count is the last used request ID. @@ -40,59 +27,29 @@ pub(crate) struct AppState { } impl AppState { - pub(crate) async fn load(config: &Config) -> Result { - let db: Arc = match config.db { - #[cfg(feature = "libsql")] - DbBackend::Libsql => { - #[expect(clippy::unwrap_used)] - let c = config.libsql.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function - let db_obj = libsql::Builder::new_local(&c.path) - .build() - .await - .map_err(DbError::from)?; - let conn = db_obj.connect().map_err(DbError::from)?; - info!("Connecting to LibSQL database at {}", c.path); - Arc::new(LibsqlConn::new(conn)) - } - #[cfg(feature = "postgres")] - DbBackend::Postgres => { - #[expect(clippy::unwrap_used)] - let c = config.postgres.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function - let mut pg_config = tokio_postgres::Config::new(); - pg_config.host(&c.host); - pg_config.dbname(&c.dbname); - if let Some(n) = c.port { - pg_config.port(n); - } - pg_config.user(&c.user); - if let Some(s) = &c.password { - pg_config.password(s); - } - pg_config.ssl_mode(SslMode::Disable); + pub(crate) async fn new(db: Db, pipe_name: &str) -> Result { + let policy = Policy::load()?; - let mgr = PostgresConnectionManager::new(pg_config, NoTls); - let pool = Pool::builder().build(mgr).await.map_err(DbError::from)?; + let last_req_id = db.get_last_request_id().await?; + let startup_time = Utc::now(); + let run_id = db.log_server_startup(startup_time, pipe_name).await?; - info!("Connecting to Postgres database {} on host {}", c.dbname, c.host); - Arc::new(PgPool::new(pool)) - } + let startup_info = StartupInfo { + run_id, + request_count: last_req_id, + start_time: startup_time, }; - let policy = Policy::load()?; - - let last_req_id = db.get_latest_request_id().await?; - Ok(Self { + startup_info, req_counter: Arc::new(AtomicI32::new(last_req_id)), - db, + db: db.0, policy: Arc::new(RwLock::new(policy)), }) } } /// Axum extractor for an object that is `Database`. -pub(crate) struct Db(pub Arc); - impl FromRequestParts for Db where AppState: FromRef, @@ -114,7 +71,6 @@ impl FromRef for Arc> { #[derive(Debug)] pub enum AppStateError { - Config(ConfigError), LoadPolicy(LoadPolicyError), Db(DbError), } @@ -122,7 +78,6 @@ pub enum AppStateError { impl error::Error for AppStateError { fn source(&self) -> Option<&(dyn error::Error + 'static)> { match self { - Self::Config(e) => Some(e), Self::LoadPolicy(e) => Some(e), Self::Db(e) => Some(e), } @@ -132,17 +87,12 @@ impl error::Error for AppStateError { impl fmt::Display for AppStateError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - Self::Config(e) => e.fmt(f), Self::LoadPolicy(e) => e.fmt(f), Self::Db(e) => e.fmt(f), } } } -impl From for AppStateError { - fn from(e: ConfigError) -> Self { - Self::Config(e) - } -} + impl From for AppStateError { fn from(e: LoadPolicyError) -> Self { Self::LoadPolicy(e) diff --git a/crates/devolutions-pedm/src/db/err.rs b/crates/devolutions-pedm/src/db/err.rs index e2dc9db0d..c8974602f 100644 --- a/crates/devolutions-pedm/src/db/err.rs +++ b/crates/devolutions-pedm/src/db/err.rs @@ -1,20 +1,42 @@ +use core::error::Error; use core::fmt; +#[cfg(feature = "libsql")] +use chrono::{DateTime, Utc}; + +#[cfg(feature = "libsql")] +use std::num::TryFromIntError; + +#[cfg(feature = "postgres")] +use tokio_postgres::error::SqlState; + +/// Error type for DB operations. #[derive(Debug)] pub enum DbError { #[cfg(feature = "libsql")] Libsql(libsql::Error), + /// This is to handle some type conversions. + /// + /// For example, we may have a value that is `i16` in the data model but it is stored as `i32` in libSQL. + #[cfg(feature = "libsql")] + TryFromInt(TryFromIntError), + #[cfg(feature = "libsql")] + Timestamp(ParseTimestampError), #[cfg(feature = "postgres")] Bb8(bb8::RunError), #[cfg(feature = "postgres")] Postgres(tokio_postgres::Error), } -impl core::error::Error for DbError { - fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { +impl Error for DbError { + fn source(&self) -> Option<&(dyn Error + 'static)> { match self { #[cfg(feature = "libsql")] Self::Libsql(e) => Some(e), + #[cfg(feature = "libsql")] + Self::TryFromInt(e) => Some(e), + #[cfg(feature = "libsql")] + Self::Timestamp(e) => Some(e), #[cfg(feature = "postgres")] Self::Bb8(e) => Some(e), #[cfg(feature = "postgres")] @@ -28,8 +50,12 @@ impl fmt::Display for DbError { match self { #[cfg(feature = "libsql")] Self::Libsql(e) => e.fmt(f), + #[cfg(feature = "libsql")] + Self::TryFromInt(e) => e.fmt(f), + #[cfg(feature = "libsql")] + Self::Timestamp(e) => e.fmt(f), #[cfg(feature = "postgres")] - Self::Bb8(e) => e.fmt(f), + Self::Bb8(e) => write!(f, "could not connect to the database: {e}"), #[cfg(feature = "postgres")] Self::Postgres(e) => e.fmt(f), } @@ -42,6 +68,18 @@ impl From for DbError { Self::Libsql(e) } } +#[cfg(feature = "libsql")] +impl From for DbError { + fn from(e: TryFromIntError) -> Self { + Self::TryFromInt(e) + } +} +#[cfg(feature = "libsql")] +impl From for DbError { + fn from(e: ParseTimestampError) -> Self { + Self::Timestamp(e) + } +} #[cfg(feature = "postgres")] impl From> for DbError { @@ -55,3 +93,41 @@ impl From for DbError { Self::Postgres(e) } } + +impl DbError { + pub fn is_table_does_not_exist(&self) -> bool { + match self { + #[cfg(feature = "libsql")] + Self::Libsql(libsql::Error::SqliteFailure(1, msg)) => msg.starts_with("no such table"), + #[cfg(feature = "postgres")] + Self::Postgres(e) => e.code() == Some(&SqlState::UNDEFINED_TABLE), + _ => false, + } + } +} + +#[cfg(feature = "libsql")] +/// A custom error type equivalent for `chrono::LocalResult`. +#[derive(Debug)] +pub enum ParseTimestampError { + None, + /// This should be unreachable when using UTC. + Ambiguous(DateTime, DateTime), +} + +#[cfg(feature = "libsql")] +impl Error for ParseTimestampError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + None + } +} + +#[cfg(feature = "libsql")] +impl fmt::Display for ParseTimestampError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::None => write!(f, "no timestamp found"), + Self::Ambiguous(dt1, dt2) => write!(f, "ambiguous timestamp: {dt1:?} or {dt2:?}"), + } + } +} diff --git a/crates/devolutions-pedm/src/db/libsql.rs b/crates/devolutions-pedm/src/db/libsql.rs index 713b31f7c..c3c12af74 100644 --- a/crates/devolutions-pedm/src/db/libsql.rs +++ b/crates/devolutions-pedm/src/db/libsql.rs @@ -1,9 +1,11 @@ use std::ops::Deref; use async_trait::async_trait; +use chrono::{DateTime, Utc}; use libsql::params::IntoParams; use libsql::{params, Row}; +use super::err::ParseTimestampError; use super::{Database, DbError}; pub(crate) struct LibsqlConn(libsql::Connection); @@ -35,7 +37,21 @@ impl Deref for LibsqlConn { #[async_trait] impl Database for LibsqlConn { - async fn get_latest_request_id(&self) -> Result { + async fn get_schema_version(&self) -> Result { + let version = self + .query_one("SELECT version FROM pedm_schema_version", ()) + .await? + .get::(0)?; + Ok(i16::try_from(version)?) + } + + async fn init_schema(&self) -> Result<(), DbError> { + let sql = include_str!("../../schema/libsql.sql"); + self.execute_batch(sql).await?; + Ok(()) + } + + async fn get_last_request_id(&self) -> Result { match self .query_one("SELECT id FROM http_request ORDER BY id DESC LIMIT 1", ()) .await @@ -46,9 +62,26 @@ impl Database for LibsqlConn { } } - async fn log_server_startup(&self, pipe_name: &str) -> Result { + async fn get_last_request_time(&self) -> Result>, DbError> { + match self + .query_one("SELECT at FROM http_request ORDER BY id DESC LIMIT 1", ()) + .await + { + Ok(row) => { + let micros: i64 = row.get(0)?; + Ok(Some(parse_micros(micros)?)) + } + Err(libsql::Error::QueryReturnedNoRows) => Ok(None), + Err(e) => Err(DbError::Libsql(e)), + } + } + + async fn log_server_startup(&self, start_time: DateTime, pipe_name: &str) -> Result { Ok(self - .query_one("INSERT INTO pedm_run (pipe_name) VALUES (?) RETURNING id", [pipe_name]) + .query_one( + "INSERT INTO pedm_run (start_time, pipe_name) VALUES (?1, ?2) RETURNING id", + params![start_time.timestamp_micros(), pipe_name], + ) .await? .get(0)?) } @@ -71,3 +104,38 @@ impl Database for LibsqlConn { Ok(()) } } + +/// Converts a timestamp in microseconds to a `DateTime`. +fn parse_micros(micros: i64) -> Result, ParseTimestampError> { + use chrono::offset::LocalResult; + use chrono::TimeZone; + + match Utc.timestamp_micros(micros) { + LocalResult::Single(dt) => Ok(dt), + LocalResult::Ambiguous(earliest, latest) => Err(ParseTimestampError::Ambiguous(earliest, latest)), + LocalResult::None => Err(ParseTimestampError::None), + } +} + +#[cfg(test)] +mod tests { + use chrono::{TimeZone, Utc}; + + use super::parse_micros; + use crate::db::err::ParseTimestampError; + + #[test] + fn test_valid_micros() { + let dt = Utc.with_ymd_and_hms(2024, 1, 1, 0, 0, 0).unwrap(); + let micros = dt.timestamp_micros(); + let parsed = parse_micros(micros).unwrap(); + assert_eq!(parsed.timestamp(), dt.timestamp()); + } + + #[test] + fn test_invalid_micros_none() { + // i32::MIN is too far in the past and produces LocalResult::None + let e = parse_micros(i64::MIN).unwrap_err(); + matches!(e, ParseTimestampError::None); + } +} diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index 5c1fc419e..988765c3d 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -1,7 +1,12 @@ +use core::fmt; +use std::ops::Deref; +use std::sync::Arc; + use async_trait::async_trait; mod err; +use chrono::{DateTime, Utc}; pub(crate) use err::DbError; #[cfg(feature = "libsql")] @@ -14,22 +19,171 @@ mod pg; #[cfg(feature = "postgres")] pub(crate) use pg::PgPool; +#[cfg(feature = "postgres")] +use bb8::Pool; +#[cfg(feature = "postgres")] +use bb8_postgres::PostgresConnectionManager; +#[cfg(feature = "postgres")] +use tokio_postgres::config::SslMode; +#[cfg(feature = "postgres")] +use tokio_postgres::NoTls; +use tracing::info; + +use crate::config::DbBackend; +use crate::Config; + +/// A wrapper around the database connection. +#[derive(Clone)] +pub(crate) struct Db(pub Arc); + +impl Deref for Db { + type Target = dyn Database + Send + Sync; + + fn deref(&self) -> &Self::Target { + &*self.0 + } +} + +impl Db { + /// Creates a new `Db` instance. + pub(crate) async fn new(config: &Config) -> Result { + let db: Arc = match config.db { + #[cfg(feature = "libsql")] + DbBackend::Libsql => { + #[expect(clippy::unwrap_used)] + let c = config.libsql.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function + let db_obj = ::libsql::Builder::new_local(&c.path).build().await?; + let conn = db_obj.connect()?; + info!("Connecting to libSQL database at {}", c.path); + Arc::new(LibsqlConn::new(conn)) + } + #[cfg(feature = "postgres")] + DbBackend::Postgres => { + #[expect(clippy::unwrap_used)] + let c = config.postgres.as_ref().unwrap(); // already checked by `Config::validate` at the end of the load function + let mut pg_config = tokio_postgres::Config::new(); + pg_config.host(&c.host); + pg_config.dbname(&c.dbname); + if let Some(n) = c.port { + pg_config.port(n); + } + pg_config.user(&c.user); + if let Some(s) = &c.password { + pg_config.password(s); + } + pg_config.ssl_mode(SslMode::Disable); + + let mgr = PostgresConnectionManager::new(pg_config, NoTls); + let pool = Pool::builder().build(mgr).await?; + + info!( + "Connecting to postgres://{user}@{host}:{port}/{dbname}", + user = c.user, + host = c.host, + port = c.port.unwrap_or(5432), + dbname = c.dbname + ); + // Check if the connection works. + let conn = pool.get().await?; + conn.query_one("SELECT 1", &[]).await?; + drop(conn); + Arc::new(PgPool::new(pool)) + } + }; + info!("Successfully connected to the database"); + Ok(Self(db)) + } + + /// Initializes the database schema if needed. + pub(crate) async fn init_schema(&self) -> Result<(), InitSchemaError> { + match self.0.get_schema_version().await { + Ok(version) => { + info!("Schema version: {version}"); + if version == 1 { + Ok(()) + } else { + Err(InitSchemaError::VersionMismatch { + expected: 1, + actual: version, + }) + } + } + Err(db_err) => { + if db_err.is_table_does_not_exist() { + self.0.init_schema().await?; + Ok(()) + } else { + Err(db_err.into()) + } + } + } + } +} + +#[derive(Debug)] +pub enum InitSchemaError { + VersionMismatch { expected: i16, actual: i16 }, + Db(DbError), +} + +impl core::error::Error for InitSchemaError { + fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { + match self { + Self::VersionMismatch { .. } => None, + Self::Db(e) => Some(e), + } + } +} + +impl fmt::Display for InitSchemaError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::VersionMismatch { expected, actual } => { + write!( + f, + "schema version mismatch: expected version {expected}, got version {actual}" + ) + } + Self::Db(e) => e.fmt(f), + } + } +} + +impl From for InitSchemaError { + fn from(e: DbError) -> Self { + Self::Db(e) + } +} + /// Abstracts database operations for backends such as Postgres or libSQL. /// /// All queries required by the application are defined here. They must be implemented by each backend. #[async_trait] pub(crate) trait Database: Send + Sync { + /// Returns the schema version from the `pedm_schema_version` table. + async fn get_schema_version(&self) -> Result; + + /// Initializes the database schema. + /// + /// This creates tables. + async fn init_schema(&self) -> Result<(), DbError>; + /// Gets the latest request ID from the HTTP request table. /// /// This is used to set the atomic request counter. /// /// It returns an error if there is a database error, except for "no rows found". In that case, it returns 0. - async fn get_latest_request_id(&self) -> Result; + async fn get_last_request_id(&self) -> Result; + + /// Gets the time of the latest request. + /// + /// This is used in endpoints like `/about`. + async fn get_last_request_time(&self) -> Result>, DbError>; /// Logs the server startup. /// /// Returns the run ID. - async fn log_server_startup(&self, pipe_name: &str) -> Result; + async fn log_server_startup(&self, start_time: DateTime, pipe_name: &str) -> Result; /// Logs an HTTP request. /// diff --git a/crates/devolutions-pedm/src/db/pg.rs b/crates/devolutions-pedm/src/db/pg.rs index afa80157b..7660d3a78 100644 --- a/crates/devolutions-pedm/src/db/pg.rs +++ b/crates/devolutions-pedm/src/db/pg.rs @@ -3,6 +3,7 @@ use std::ops::Deref; use async_trait::async_trait; use bb8::Pool; use bb8_postgres::PostgresConnectionManager; +use chrono::{DateTime, Utc}; use tokio_postgres::NoTls; use super::{Database, DbError}; @@ -25,7 +26,22 @@ impl Deref for PgPool { #[async_trait] impl Database for PgPool { - async fn get_latest_request_id(&self) -> Result { + async fn get_schema_version(&self) -> Result { + Ok(self + .get() + .await? + .query_one("SELECT version FROM pedm_schema_version", &[]) + .await? + .get(0)) + } + + async fn init_schema(&self) -> Result<(), DbError> { + let sql = include_str!("../../schema/pg.sql"); + self.get().await?.batch_execute(sql).await?; + Ok(()) + } + + async fn get_last_request_id(&self) -> Result { Ok(self .get() .await? @@ -35,13 +51,23 @@ impl Database for PgPool { .unwrap_or_default()) } - async fn log_server_startup(&self, pipe_name: &str) -> Result { + async fn get_last_request_time(&self) -> Result>, DbError> { + Ok(self + .get() + .await? + .query_opt("SELECT at FROM http_request ORDER BY id DESC LIMIT 1", &[]) + .await? + .map(|r| r.get(0)) + .unwrap_or_default()) + } + + async fn log_server_startup(&self, start_time: DateTime, pipe_name: &str) -> Result { Ok(self .get() .await? .query_one( - "INSERT INTO pedm_run (pipe_name) VALUES ($1) RETURNING id", - &[&pipe_name], + "INSERT INTO pedm_run (start_time, pipe_name) VALUES ($1, $2) RETURNING id", + &[&start_time, &pipe_name], ) .await? .get(0)) diff --git a/crates/devolutions-pedm/src/lib.rs b/crates/devolutions-pedm/src/lib.rs index d14ee4a9a..7f2088263 100644 --- a/crates/devolutions-pedm/src/lib.rs +++ b/crates/devolutions-pedm/src/lib.rs @@ -1,12 +1,14 @@ use async_trait::async_trait; use camino::Utf8PathBuf; +pub mod model; + pub use config::Config; use devolutions_gateway_task::{ShutdownSignal, Task}; cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { - mod api; + pub mod api; mod db; mod config; mod elevations; diff --git a/crates/devolutions-pedm/src/model.rs b/crates/devolutions-pedm/src/model.rs new file mode 100644 index 000000000..b27e69baf --- /dev/null +++ b/crates/devolutions-pedm/src/model.rs @@ -0,0 +1,27 @@ +use chrono::{DateTime, Utc}; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] +#[serde(rename_all = "PascalCase")] +pub(crate) struct AboutData { + #[serde(flatten)] + pub startup_info: StartupInfo, + /// The number of requests received since the server started. + pub requests_received: i32, + /// The time of the most recent request. + /// + /// This can be `None` if `/about` is the first request made. + pub last_request_time: Option>, +} + +/// Immutable startup info. +/// +/// It is used in the `/about` endpoint. +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] +#[serde(rename_all = "PascalCase")] +pub(crate) struct StartupInfo { + pub(crate) run_id: i32, + pub(crate) request_count: i32, + pub(crate) start_time: DateTime, +} From 941ec36602f8921a876f09c06985312ef3ceb987 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 19:58:48 -0400 Subject: [PATCH 05/26] Unformat Cargo.toml --- crates/devolutions-pedm/Cargo.toml | 36 +++++++----------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/crates/devolutions-pedm/Cargo.toml b/crates/devolutions-pedm/Cargo.toml index 59a5579b7..972212eb4 100644 --- a/crates/devolutions-pedm/Cargo.toml +++ b/crates/devolutions-pedm/Cargo.toml @@ -11,24 +11,13 @@ publish = false [dependencies] anyhow = "1.0" -axum = { version = "0.8", default-features = false, features = [ - "http1", - "json", - "tokio", - "query", - "tracing", - "tower-log", - "form", - "original-uri", - "matched-path", -] } +axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "query", "tracing", "tower-log", "form", "original-uri", "matched-path"] } base16ct = { version = "0.2", features = ["std", "alloc"] } base64 = "0.22" -chrono = { version = "0.4", features = ["serde"] } digest = "0.10" hyper = { version = "1.3", features = ["server"] } hyper-util = { version = "0.1", features = ["tokio"] } -schemars = { version = "0.8", features = ["chrono"] } +schemars = "0.8" serde = "1.0" serde_json = "1.0" sha1 = "0.10" @@ -36,20 +25,13 @@ sha2 = "0.10" tokio = { version = "1.44", features = ["net", "rt-multi-thread"] } tower-service = "0.3" win-api-wrappers = { path = "../win-api-wrappers" } -devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = [ - "policy", -] } +devolutions-pedm-shared = { path = "../devolutions-pedm-shared", features = ["policy"]} devolutions-gateway-task = { path = "../devolutions-gateway-task" } devolutions-agent-shared = { path = "../devolutions-agent-shared" } camino = { version = "1", features = ["serde1"] } async-trait = "0.1" tracing = "0.1" -aide = { version = "0.14", features = [ - "axum", - "axum-extra", - "axum-json", - "axum-tokio", -] } +aide = { version = "0.14", features = ["axum", "axum-extra", "axum-json", "axum-tokio"] } tower-http = { version = "0.5", features = ["timeout"] } parking_lot = "0.12" cfg-if = "1.0" @@ -57,12 +39,10 @@ uuid = "1" dunce = "1.0" tower = "0.5" futures-util = "0.3" -libsql = { version = "0.9", optional = true, default-features = false, features = ["core", "sync"] } -tokio-postgres = { version = "0.7", optional = true, features = [ - "with-chrono-0_4", -] } -bb8 = { version = "0.9", optional = true } -bb8-postgres = { version = "0.9", optional = true } +libsql = { version = "0.9", optional = true, features = [ "core", "stream"] } +tokio-postgres = { version = "0.7", optional = true } +bb8 = { version = "0.9.0", optional = true } +bb8-postgres = { version = "0.9.0", optional = true } [features] default = ["libsql"] From 7327209e590a18378db623cf2fa14798836b7017 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 19:58:57 -0400 Subject: [PATCH 06/26] Update Cargo.lock --- Cargo.lock | 1911 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 1105 insertions(+), 806 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c626a72cf..12f203dd2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,17 +88,17 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2477554ebf38aea815a9c4729100cfc32f766876c45b9c9c38ef221b9d1a703" dependencies = [ - "axum 0.8.1", - "axum-extra 0.10.0", - "bytes 1.8.0", + "axum 0.8.3", + "axum-extra 0.10.1", + "bytes 1.10.1", "cfg-if", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.3.1", + "indexmap 2.9.0", "schemars", "serde", "serde_json", "serde_qs", - "thiserror 2.0.3", + "thiserror 2.0.12", "tower-layer", "tower-service", "tracing", @@ -127,9 +127,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "arc-swap" @@ -167,7 +167,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -176,9 +176,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "synstructure", ] @@ -188,9 +188,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "log", "pin-utils", "pkg-config", - "tokio 1.44.1", + "tokio 1.44.2", "winapi", ] @@ -218,9 +218,9 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -242,7 +242,7 @@ checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", ] [[package]] @@ -251,20 +251,20 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -293,28 +293,26 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.12.4" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd755adf9707cf671e31d944a189be3deaaeee11c8bc1d669bb8022ac90fbd0" +checksum = "19b756939cb2f8dc900aa6dcd505e6e2428e9cae7ff7b028c49e3946efa70878" dependencies = [ "aws-lc-sys", - "paste", "untrusted 0.7.1", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.26.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9dd2e03ee80ca2822dd6ea431163d2ef259f2066a4d6ccaca6d9dcb386aa43" +checksum = "b9f7720b74ed28ca77f90769a71fd8c637a0137f6fae4ae947e1050229cff57f" dependencies = [ "bindgen 0.69.5", "cc", "cmake", "dunce", "fs_extra", - "paste", ] [[package]] @@ -326,17 +324,17 @@ dependencies = [ "async-trait", "axum-core 0.3.4", "bitflags 1.3.2", - "bytes 1.8.0", + "bytes 1.10.1", "futures-util", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.31", + "hyper 0.14.32", "itoa", "matchit 0.7.3", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "rustversion", "serde", "sync_wrapper 0.1.2", @@ -347,34 +345,34 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core 0.4.5", "base64 0.22.1", - "bytes 1.8.0", + "bytes 1.10.1", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.6.0", "hyper-util", "itoa", "matchit 0.7.3", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "rustversion", "serde", "serde_json", "serde_path_to_error", "serde_urlencoded", "sha1", - "sync_wrapper 1.0.1", - "tokio 1.44.1", + "sync_wrapper 1.0.2", + "tokio 1.44.2", "tokio-tungstenite", "tower 0.5.2", "tower-layer", @@ -384,32 +382,32 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" +checksum = "de45108900e1f9b9242f7f2e254aa3e2c029c921c258fe9e6b4217eeebd54288" dependencies = [ - "axum-core 0.5.0", - "bytes 1.8.0", + "axum-core 0.5.2", + "bytes 1.10.1", "form_urlencoded", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.6.0", "hyper-util", "itoa", "matchit 0.8.4", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "rustversion", "serde", "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio 1.44.1", + "sync_wrapper 1.0.2", + "tokio 1.44.2", "tower 0.5.2", "tower-layer", "tower-service", @@ -423,7 +421,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.8.0", + "bytes 1.10.1", "futures-util", "http 0.2.12", "http-body 0.4.6", @@ -440,15 +438,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.8.0", + "bytes 1.10.1", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -456,19 +454,19 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" dependencies = [ - "bytes 1.8.0", - "futures-util", - "http 1.1.0", + "bytes 1.10.1", + "futures-core", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -476,45 +474,47 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73c3220b188aea709cf1b6c5f9b01c3bd936bb08bd2b5184a12b35ac8131b1f9" +checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" dependencies = [ - "axum 0.7.7", + "axum 0.7.9", "axum-core 0.4.5", - "bytes 1.8.0", + "bytes 1.10.1", + "fastrand", "futures-util", "headers", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.15", + "multer", + "pin-project-lite 0.2.16", "serde", "serde_html_form", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "tower 0.5.2", "tower-layer", "tower-service", - "tracing", ] [[package]] name = "axum-extra" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fc6f625a1f7705c6cf62d0d070794e94668988b1c38111baeec177c715f7b" +checksum = "45bf463831f5131b7d3c756525b305d40f1185b688565648a92e1392ca35713d" dependencies = [ - "axum 0.8.1", - "axum-core 0.5.0", - "bytes 1.8.0", + "axum 0.8.3", + "axum-core 0.5.2", + "bytes 1.10.1", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", + "rustversion", "serde", "tower 0.5.2", "tower-layer", @@ -589,9 +589,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bb8" @@ -601,7 +601,7 @@ checksum = "212d8b8e1a22743d9241575c6ba822cf9c8fef34771c86ab7e477a4fbfd254e5" dependencies = [ "futures-util", "parking_lot", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -611,7 +611,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e570e6557cd0f88d28d32afa76644873271a70dc22656df565b2021c4036aa9c" dependencies = [ "bb8", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-postgres", ] @@ -630,7 +630,7 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "lazy_static", @@ -638,12 +638,12 @@ dependencies = [ "log", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.100", "which", ] @@ -653,7 +653,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools", @@ -661,29 +661,29 @@ dependencies = [ "lazycell", "log", "prettyplease", - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.100", "which", ] [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bit_field" @@ -699,9 +699,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bitvec" @@ -744,9 +744,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byteorder" @@ -771,9 +771,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" dependencies = [ "serde", ] @@ -807,9 +807,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" dependencies = [ "jobserver", "libc", @@ -824,7 +824,7 @@ checksum = "42c08bc4ee8dce2878185fe1e6dc9b550a36ac3b4fa8c8e8546c4d8792d0176d" dependencies = [ "cfg-if", "chrono", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "ctrlc", "libc", @@ -858,17 +858,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -894,9 +893,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.51" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" dependencies = [ "cc", ] @@ -926,6 +925,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -934,9 +943,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -965,18 +974,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -993,18 +1002,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto" @@ -1059,9 +1068,9 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.5" +version = "3.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" dependencies = [ "nix 0.29.0", "windows-sys 0.59.0", @@ -1089,22 +1098,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "data-encoding-macro" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +checksum = "9f9724adfcf41f45bf652b3995837669d73c4d49a1b5ac1ff82905ac7d9b5558" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -1112,12 +1121,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -1152,16 +1161,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -1173,8 +1182,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c9d94d81e3819a7b06a8638f448bc6339371ca9b6076a99d4a43eece3c4c923" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "syn 1.0.109", ] @@ -1214,9 +1223,9 @@ dependencies = [ "serde_json", "sha2", "tap", - "thiserror 1.0.68", - "tokio 1.44.1", - "tokio-rustls", + "thiserror 1.0.69", + "tokio 1.44.2", + "tokio-rustls 0.26.2", "tracing", "uuid", "win-api-wrappers", @@ -1231,10 +1240,10 @@ dependencies = [ "cfg-if", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", "uuid", "windows-registry 0.3.0", - "windows-result", + "windows-result 0.2.0", ] [[package]] @@ -1244,10 +1253,10 @@ dependencies = [ "anyhow", "argon2", "async-trait", - "axum 0.7.7", - "axum-extra 0.9.4", + "axum 0.7.9", + "axum-extra 0.9.6", "backoff", - "bytes 1.8.0", + "bytes 1.10.1", "cadeau", "camino", "ceviche", @@ -1262,9 +1271,9 @@ dependencies = [ "embed-resource", "etherparse", "futures", - "hostname 0.4.0", + "hostname 0.4.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.6.0", "hyper-util", "ironrdp-core 0.1.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=7c268d863048d0a9182b3f7bf778668de8db4ccf)", @@ -1279,8 +1288,8 @@ dependencies = [ "parking_lot", "pcap-file", "picky", - "picky-krb 0.9.1", - "pin-project-lite 0.2.15", + "picky-krb 0.9.4", + "pin-project-lite 0.2.16", "portpicker", "proptest", "reqwest", @@ -1293,10 +1302,10 @@ dependencies = [ "sysinfo", "tap", "terminal-streamer", - "thiserror 1.0.68", + "thiserror 1.0.69", "time", - "tokio 1.44.1", - "tokio-rustls", + "tokio 1.44.2", + "tokio-rustls 0.26.2", "tokio-test", "tokio-tungstenite", "tower 0.5.2", @@ -1328,7 +1337,7 @@ name = "devolutions-gateway-task" version = "0.0.0" dependencies = [ "async-trait", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -1339,7 +1348,7 @@ dependencies = [ "async-trait", "camino", "devolutions-gateway-task", - "tokio 1.44.1", + "tokio 1.44.2", "tracing", "tracing-appender", "tracing-subscriber", @@ -1352,21 +1361,20 @@ dependencies = [ "aide", "anyhow", "async-trait", - "axum 0.8.1", + "axum 0.8.3", "base16ct", "base64 0.22.1", "bb8", "bb8-postgres", "camino", "cfg-if", - "chrono", "devolutions-agent-shared", "devolutions-gateway-task", "devolutions-pedm-shared", "digest", "dunce", "futures-util", - "hyper 1.5.0", + "hyper 1.6.0", "hyper-util", "libsql", "parking_lot", @@ -1375,7 +1383,7 @@ dependencies = [ "serde_json", "sha1", "sha2", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-postgres", "tower 0.5.2", "tower-http 0.5.2", @@ -1392,7 +1400,7 @@ dependencies = [ "base64 0.7.0", "futures", "http 0.2.12", - "hyper 0.14.31", + "hyper 0.14.32", "hyper-tls", "serde", "serde_json", @@ -1420,13 +1428,13 @@ dependencies = [ "devolutions-pedm-client-http", "dunce", "glob", - "hyper 0.14.31", - "pin-project 1.1.7", + "hyper 0.14.32", + "pin-project 1.1.10", "regex", "schemars", "serde", "serde_json", - "tokio 1.44.1", + "tokio 1.44.2", "tower 0.3.1", "uuid", "win-api-wrappers", @@ -1441,7 +1449,7 @@ dependencies = [ "embed-resource", "fs_extra", "parking_lot", - "tokio 1.44.1", + "tokio 1.44.2", "win-api-wrappers", "windows-core 0.58.0", ] @@ -1465,8 +1473,8 @@ dependencies = [ "serde_json", "tap", "tempfile", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tracing", "win-api-wrappers", "windows 0.58.0", @@ -1511,9 +1519,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -1568,9 +1576,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ebml-iterable" @@ -1596,8 +1604,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b066b81018300fdce40f71c4db355a102699324af96fad28f25ab1b5f87de066" dependencies = [ "ebml-iterable-specification", - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "syn 1.0.109", ] @@ -1642,9 +1650,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -1669,9 +1677,9 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e24052d7be71f0efb50c201557f6fe7d237cfd5a64fd5bcd7fd8fe32dbbffa" +checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379" dependencies = [ "cc", "memchr", @@ -1681,20 +1689,29 @@ dependencies = [ "winreg 0.52.0", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1726,15 +1743,15 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle", @@ -1760,9 +1777,9 @@ dependencies = [ [[package]] name = "flagset" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" [[package]] name = "flume" @@ -1880,9 +1897,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -1916,7 +1933,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "pin-utils", "slab", ] @@ -1942,9 +1959,9 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb949699c3e4df3a183b1d2142cb24277057055ed23c68ed58894f76c517223" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" dependencies = [ "cfg-if", "libc", @@ -1984,9 +2001,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -2007,9 +2026,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "group" @@ -2028,34 +2047,34 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "fnv", "futures-core", "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.9.0", "slab", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "tracing", ] [[package]] name = "h2" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", - "bytes 1.8.0", + "bytes 1.10.1", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.3.1", + "indexmap 2.9.0", "slab", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "tracing", ] @@ -2078,9 +2097,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "hashlink" @@ -2098,9 +2117,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.10.1", "headers-core", - "http 1.1.0", + "http 1.3.1", "httpdate", "mime", "sha1", @@ -2112,7 +2131,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 1.1.0", + "http 1.3.1", ] [[package]] @@ -2159,11 +2178,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2179,13 +2198,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows 0.52.0", + "windows-link", ] [[package]] @@ -2194,18 +2213,18 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "fnv", "itoa", ] [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "fnv", "itoa", ] @@ -2216,9 +2235,9 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "http 0.2.12", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", ] [[package]] @@ -2227,21 +2246,21 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.8.0", - "http 1.1.0", + "bytes 1.10.1", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "bytes 1.8.0", - "futures-util", - "http 1.1.0", + "bytes 1.10.1", + "futures-core", + "http 1.3.1", "http-body 1.0.1", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", ] [[package]] @@ -2252,15 +2271,15 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "http-range-header" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -2270,17 +2289,17 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "hyper" -version = "0.14.31" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures-channel", "futures-core", "futures-util", @@ -2290,9 +2309,9 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "socket2", - "tokio 1.44.1", + "tokio 1.44.2", "tower-service", "tracing", "want", @@ -2300,40 +2319,58 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.8", + "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "smallvec", - "tokio 1.44.1", + "tokio 1.44.2", "want", ] [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.32", + "log", + "rustls 0.22.4", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "tokio 1.44.2", + "tokio-rustls 0.25.0", + "webpki-roots", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.5.0", + "http 1.3.1", + "hyper 1.6.0", "hyper-util", "rustls 0.23.25", - "rustls-native-certs", + "rustls-native-certs 0.8.1", "rustls-pki-types", - "tokio 1.44.1", - "tokio-rustls", + "tokio 1.44.2", + "tokio-rustls 0.26.2", "tower-service", ] @@ -2343,9 +2380,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.31", - "pin-project-lite 0.2.15", - "tokio 1.44.1", + "hyper 0.14.32", + "pin-project-lite 0.2.16", + "tokio 1.44.2", "tokio-io-timeout", ] @@ -2355,44 +2392,46 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.8.0", - "hyper 0.14.31", + "bytes 1.10.1", + "hyper 0.14.32", "native-tls", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-native-tls", ] [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.5.0", - "pin-project-lite 0.2.15", + "hyper 1.6.0", + "libc", + "pin-project-lite 0.2.16", "socket2", - "tokio 1.44.1", + "tokio 1.44.2", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -2445,9 +2484,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -2469,9 +2508,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -2490,9 +2529,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -2517,9 +2556,9 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -2545,12 +2584,12 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" +checksum = "69b2eeee38fef3aa9b4cc5f1beea8a2444fc00e7377cafae396de3f5c2065e24" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2565,12 +2604,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.2", "serde", ] @@ -2596,9 +2635,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", @@ -2620,16 +2659,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ "socket2", - "widestring 1.1.0", + "widestring 1.2.0", "windows-sys 0.48.0", "winreg 0.50.0", ] [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "ironrdp" @@ -2657,7 +2696,7 @@ name = "ironrdp-ainput" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "ironrdp-dvc", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "num-derive", @@ -2669,7 +2708,7 @@ name = "ironrdp-async" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "ironrdp-connector", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "tracing", @@ -2680,10 +2719,10 @@ name = "ironrdp-cliprdr" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "ironrdp-svc", - "thiserror 1.0.68", + "thiserror 1.0.69", "tracing", ] @@ -2763,7 +2802,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.6.0", + "bitflags 2.9.0", "bitvec", "byteorder", "ironrdp-error 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", @@ -2771,7 +2810,7 @@ dependencies = [ "lazy_static", "num-derive", "num-traits", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -2780,7 +2819,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ "bit_field", - "bitflags 2.6.0", + "bitflags 2.9.0", "byteorder", "der-parser", "ironrdp-error 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", @@ -2792,7 +2831,7 @@ dependencies = [ "pkcs1", "sha1", "tap", - "thiserror 1.0.68", + "thiserror 1.0.69", "x509-cert", ] @@ -2802,7 +2841,7 @@ version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=7c268d863048d0a9182b3f7bf778668de8db4ccf#7c268d863048d0a9182b3f7bf778668de8db4ccf" dependencies = [ "bit_field", - "bitflags 2.6.0", + "bitflags 2.9.0", "byteorder", "der-parser", "ironrdp-core 0.1.0", @@ -2815,7 +2854,7 @@ dependencies = [ "pkcs1", "sha1", "tap", - "thiserror 1.0.68", + "thiserror 1.0.69", "x509-cert", ] @@ -2832,7 +2871,7 @@ name = "ironrdp-rdpsnd" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", "ironrdp-svc", "tracing", @@ -2855,8 +2894,8 @@ dependencies = [ "ironrdp-rdpsnd", "ironrdp-svc", "ironrdp-tokio", - "tokio 1.44.1", - "tokio-rustls", + "tokio 1.44.2", + "tokio-rustls 0.26.2", "tracing", ] @@ -2865,7 +2904,7 @@ name = "ironrdp-svc" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "ironrdp-pdu 0.1.0 (git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861)", ] @@ -2874,9 +2913,9 @@ name = "ironrdp-tokio" version = "0.1.0" source = "git+https://github.com/Devolutions/IronRDP?rev=2e1a9ac88e38e7d92d893007bc25d0a05c365861#2e1a9ac88e38e7d92d893007bc25d0a05c365861" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "ironrdp-async", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -2890,9 +2929,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jet-proto" @@ -2900,7 +2939,7 @@ version = "0.0.0" dependencies = [ "byteorder", "hex-literal", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "uuid", @@ -2927,13 +2966,13 @@ dependencies = [ "proxy-types", "proxy_cfg", "rustls 0.23.25", - "rustls-native-certs", + "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "seahorse", "sysinfo", "test-utils", "tinyjson", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-tungstenite", "tracing", "tracing-appender", @@ -2955,7 +2994,7 @@ dependencies = [ name = "jmux-proto" version = "0.0.0" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "jmux-generators", "proptest", "smol_str", @@ -2967,10 +3006,10 @@ version = "0.0.0" dependencies = [ "anyhow", "bitvec", - "bytes 1.8.0", + "bytes 1.10.1", "futures-util", "jmux-proto", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "tracing", ] @@ -3004,19 +3043,21 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -3066,15 +3107,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -3082,9 +3123,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -3092,7 +3133,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "libc", "redox_syscall", ] @@ -3107,14 +3148,15 @@ dependencies = [ "async-trait", "base64 0.21.7", "bincode", - "bitflags 2.6.0", - "bytes 1.8.0", + "bitflags 2.9.0", + "bytes 1.10.1", "chrono", "crc32fast", "fallible-iterator 0.3.0", "futures", "http 0.2.12", - "hyper 0.14.31", + "hyper 0.14.32", + "hyper-rustls 0.25.0", "libsql-hrana", "libsql-sqlite3-parser", "libsql-sys", @@ -3122,8 +3164,8 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tokio-stream", "tokio-util", "tonic", @@ -3151,7 +3193,7 @@ version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.10.1", "prost", "serde", ] @@ -3161,7 +3203,7 @@ name = "libsql-rusqlite" version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "fallible-iterator 0.2.0", "fallible-streaming-iterator", "hashlink", @@ -3174,10 +3216,10 @@ name = "libsql-sqlite3-parser" version = "0.13.0" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cc", "fallible-iterator 0.3.0", - "indexmap 2.6.0", + "indexmap 2.9.0", "log", "memchr", "phf", @@ -3191,7 +3233,7 @@ name = "libsql-sys" version = "0.9.1" source = "git+https://github.com/allan2/libsql?rev=9364e90#9364e90ea1ffcd91509607abc00756581d619bda" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "libsql-ffi", "libsql-rusqlite", "once_cell", @@ -3207,15 +3249,15 @@ dependencies = [ "aes", "async-stream", "async-trait", - "bytes 1.8.0", + "bytes 1.10.1", "cbc", "libsql-rusqlite", "libsql-sys", "parking_lot", "prost", "serde", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tokio-stream", "tokio-util", "tonic", @@ -3236,15 +3278,21 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" @@ -3258,9 +3306,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "loom" @@ -3376,9 +3424,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -3397,11 +3445,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -3422,7 +3469,24 @@ name = "mock-net" version = "0.0.0" dependencies = [ "loom", - "tokio 1.44.1", + "tokio 1.44.2", +] + +[[package]] +name = "multer" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" +dependencies = [ + "bytes 1.10.1", + "encoding_rs", + "futures-util", + "http 1.3.1", + "httparse", + "memchr", + "mime", + "spin 0.9.8", + "version_check", ] [[package]] @@ -3445,21 +3509,21 @@ dependencies = [ "async-trait", "awaitdrop", "bitflags 1.3.2", - "bytes 1.8.0", + "bytes 1.10.1", "futures", - "pin-project 1.1.7", + "pin-project 1.1.10", "rand 0.8.5", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tokio-util", "tracing", ] [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -3467,7 +3531,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -3506,46 +3570,45 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] name = "netlink-proto" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 2.0.12", ] [[package]] name = "netlink-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures", "libc", "log", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] name = "network-interface" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433419f898328beca4f2c6c73a1b52540658d92b0a99f0269330457e0fd998d5" +checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" dependencies = [ "cc", "libc", - "thiserror 1.0.68", + "thiserror 1.0.69", "winapi", ] @@ -3567,8 +3630,8 @@ dependencies = [ "rtnetlink", "serde", "socket2", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tracing", "tracing-subscriber", "typed-builder", @@ -3581,10 +3644,10 @@ dependencies = [ "anyhow", "crossbeam", "parking_lot", - "polling 3.7.3", + "polling 3.7.4", "socket2", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tracing", "tracing-cov-mark", "tracing-subscriber", @@ -3608,7 +3671,7 @@ dependencies = [ "async-trait", "awaitdrop", "base64 0.13.1", - "bytes 1.8.0", + "bytes 1.10.1", "futures", "hostname 0.3.1", "muxado", @@ -3618,8 +3681,8 @@ dependencies = [ "rustls-pemfile 1.0.4", "serde", "serde_json", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", "tokio-retry", "tokio-util", "tracing", @@ -3632,7 +3695,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "libc", ] @@ -3643,7 +3706,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases", "libc", @@ -3671,7 +3734,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -3701,7 +3764,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063dca685ea8efa62d1a3566332b08be0198922f1d8aced1ead413c9f02fd89e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "ironrdp-core 0.1.4", "ironrdp-error 0.1.2", ] @@ -3765,9 +3828,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -3821,9 +3884,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -3839,9 +3902,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" @@ -3851,11 +3914,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "foreign-types", "libc", @@ -3870,22 +3933,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -3913,9 +3976,9 @@ dependencies = [ [[package]] name = "p384" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" dependencies = [ "ecdsa", "elliptic-curve", @@ -3996,7 +4059,7 @@ checksum = "1fc1f139757b058f9f37b76c48501799d12c9aa0aa4c0d4c980b062ee925d1b2" dependencies = [ "byteorder_slice", "derive-into-owned", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -4069,9 +4132,9 @@ dependencies = [ [[package]] name = "picky" -version = "7.0.0-rc.10" +version = "7.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bb43d86c58d47730b66898120eccb28d135582f7676cc7038b4422bb8e323e" +checksum = "68ff00229e235526557077232ea50a8f619bbba9f3d37c7f63d1d41502546bec" dependencies = [ "aes", "aes-gcm", @@ -4089,9 +4152,9 @@ dependencies = [ "p384", "p521", "pbkdf2", - "picky-asn1 0.9.0", - "picky-asn1-der 0.5.0", - "picky-asn1-x509 0.14.0", + "picky-asn1 0.10.1", + "picky-asn1-der 0.5.2", + "picky-asn1-x509 0.14.3", "rand 0.8.5", "rand_core 0.6.4", "rc2", @@ -4101,7 +4164,7 @@ dependencies = [ "sha1", "sha2", "sha3", - "thiserror 1.0.68", + "thiserror 1.0.69", "x25519-dalek", "zeroize", ] @@ -4120,9 +4183,9 @@ dependencies = [ [[package]] name = "picky-asn1" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360019b238b11b8c0e88cd9db3a6677f1af122e3422d0a26a2b576f084d9be36" +checksum = "2ff038f9360b934342fb3c0a1d6e82c438a2624b51c3c6e3e6d7cf252b6f3ee3" dependencies = [ "oid", "serde", @@ -4143,11 +4206,11 @@ dependencies = [ [[package]] name = "picky-asn1-der" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04784987e157b5a8f832ce68b3364915dc6ef4bed94a6e10e241fa1bae3db2e3" +checksum = "9dccb53c26f70c082e008818f524bd45d057069517b047bd0c0ee062d6d7d7f2" dependencies = [ - "picky-asn1 0.9.0", + "picky-asn1 0.10.1", "serde", "serde_bytes", ] @@ -4163,20 +4226,20 @@ dependencies = [ "picky-asn1 0.8.0", "picky-asn1-der 0.4.1", "serde", - "widestring 1.1.0", + "widestring 1.2.0", ] [[package]] name = "picky-asn1-x509" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a5aad54be4c07253cdfc64c480d636a60f216cb5853f03d84e12f3b6ec5f8" +checksum = "511c46b93e7f08571a375882879d3a468dfe8793d73249907b2e3332950cb33e" dependencies = [ "base64 0.22.1", "num-bigint-dig", "oid", - "picky-asn1 0.9.0", - "picky-asn1-der 0.5.0", + "picky-asn1 0.10.1", + "picky-asn1-der 0.5.2", "serde", "zeroize", ] @@ -4202,15 +4265,15 @@ dependencies = [ "rand 0.8.5", "serde", "sha1", - "thiserror 1.0.68", + "thiserror 1.0.69", "uuid", ] [[package]] name = "picky-krb" -version = "0.9.1" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f597160bc39865a91a3ad803abe926ac7ba7b11215099c72d403d1d82ec5390" +checksum = "322b38c31330193b1d428df5b88f1b0d3d9e91548d302844c4f221dd839b1a7d" dependencies = [ "aes", "byteorder", @@ -4221,13 +4284,13 @@ dependencies = [ "num-bigint-dig", "oid", "pbkdf2", - "picky-asn1 0.9.0", - "picky-asn1-der 0.5.0", - "picky-asn1-x509 0.14.0", + "picky-asn1 0.10.1", + "picky-asn1-der 0.5.2", + "picky-asn1-x509 0.14.3", "rand 0.8.5", "serde", "sha1", - "thiserror 1.0.68", + "thiserror 1.0.69", "uuid", ] @@ -4242,11 +4305,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ - "pin-project-internal 1.1.7", + "pin-project-internal 1.1.10", ] [[package]] @@ -4255,20 +4318,20 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "syn 1.0.109", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -4279,9 +4342,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -4312,9 +4375,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polling" @@ -4328,21 +4391,21 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "windows-sys 0.48.0", ] [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", - "pin-project-lite 0.2.15", - "rustix", + "pin-project-lite 0.2.16", + "rustix 0.38.44", "tracing", "windows-sys 0.59.0", ] @@ -4376,7 +4439,7 @@ checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" dependencies = [ "base64 0.22.1", "byteorder", - "bytes 1.8.0", + "bytes 1.10.1", "fallible-iterator 0.2.0", "hmac", "md-5", @@ -4392,8 +4455,7 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" dependencies = [ - "bytes 1.8.0", - "chrono", + "bytes 1.10.1", "fallible-iterator 0.2.0", "postgres-protocol", ] @@ -4406,21 +4468,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.7.35", + "zerocopy 0.8.24", ] [[package]] name = "prettyplease" -version = "0.2.24" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d" +checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ - "proc-macro2 1.0.88", - "syn 2.0.87", + "proc-macro2 1.0.94", + "syn 2.0.100", ] [[package]] @@ -4434,9 +4496,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit", ] @@ -4448,8 +4510,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "syn 1.0.109", "version_check", ] @@ -4460,8 +4522,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "version_check", ] @@ -4476,22 +4538,22 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.88" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.9.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -4509,7 +4571,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "prost-derive", ] @@ -4521,9 +4583,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -4538,12 +4600,12 @@ dependencies = [ name = "proxy-http" version = "0.0.0" dependencies = [ - "bytes 1.8.0", - "pin-project-lite 0.2.15", + "bytes 1.10.1", + "pin-project-lite 0.2.16", "proptest", "proxy-generators", "proxy-types", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -4553,7 +4615,7 @@ dependencies = [ "proxy-http", "proxy-socks", "proxy-types", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -4563,7 +4625,7 @@ dependencies = [ "proptest", "proxy-generators", "proxy-types", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-test", ] @@ -4573,7 +4635,7 @@ version = "0.0.0" dependencies = [ "proxy-http", "proxy-socks", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -4586,7 +4648,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4873cd217803ccb250f2563adf3f7a128a6a2039a0aeb2417a58130a079748b4" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", "url", "winapi", @@ -4601,45 +4663,51 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ - "bytes 1.8.0", - "pin-project-lite 0.2.15", + "bytes 1.10.1", + "cfg_aliases", + "pin-project-lite 0.2.16", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.1", "rustls 0.23.25", "socket2", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 2.0.12", + "tokio 1.44.2", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" dependencies = [ - "bytes 1.8.0", - "rand 0.8.5", - "ring 0.17.8", - "rustc-hash 2.0.0", + "bytes 1.10.1", + "getrandom 0.3.2", + "rand 0.9.0", + "ring 0.17.14", + "rustc-hash 2.1.1", "rustls 0.23.25", + "rustls-pki-types", "slab", - "thiserror 1.0.68", + "thiserror 2.0.12", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -4658,11 +4726,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "proc-macro2 1.0.88", + "proc-macro2 1.0.94", ] [[package]] @@ -4777,11 +4845,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -4792,7 +4860,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -4803,7 +4871,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -4818,9 +4886,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -4859,19 +4927,19 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ "base64 0.22.1", - "bytes 1.8.0", + "bytes 1.10.1", "futures-core", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", - "hyper-rustls", + "hyper 1.6.0", + "hyper-rustls 0.27.5", "hyper-util", "ipnet", "js-sys", @@ -4879,26 +4947,27 @@ dependencies = [ "mime", "once_cell", "percent-encoding", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "quinn", "rustls 0.23.25", - "rustls-native-certs", + "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "tokio 1.44.1", - "tokio-rustls", + "sync_wrapper 1.0.2", + "tokio 1.44.2", + "tokio-rustls 0.26.2", "tokio-util", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "windows-registry 0.2.0", + "windows-registry 0.4.0", ] [[package]] @@ -4944,24 +5013,23 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" dependencies = [ "const-oid", "digest", @@ -4998,12 +5066,12 @@ dependencies = [ "cfg-if", "glob", "proc-macro-crate", - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "regex", "relative-path", "rustc_version", - "syn 2.0.87", + "syn 2.0.100", "unicode-ident", ] @@ -5021,8 +5089,8 @@ dependencies = [ "netlink-proto", "netlink-sys", "nix 0.27.1", - "thiserror 1.0.68", - "tokio 1.44.1", + "thiserror 1.0.69", + "tokio 1.44.2", ] [[package]] @@ -5039,9 +5107,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -5063,15 +5131,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.3", + "windows-sys 0.59.0", ] [[package]] @@ -5086,6 +5167,20 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.14", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls" version = "0.23.25" @@ -5095,18 +5190,18 @@ dependencies = [ "aws-lc-rs", "log", "once_cell", - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.103.1", "subtle", "zeroize", ] [[package]] name = "rustls-cng" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f1ff9ad152a0a9bc9c81f2b0b4b0b6399df856788b31fb9d1b5c1e8620c749" +checksum = "c742cb7d8e43daae2dd9ca4b1da442b4500a461ce1c84249e6ac99b4bc12562e" dependencies = [ "rustls 0.23.25", "sha2", @@ -5115,15 +5210,27 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", ] [[package]] @@ -5149,24 +5256,38 @@ name = "rustls-pki-types" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" -version = "0.103.0" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ "aws-lc-rs", - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "rusty-fork" @@ -5182,9 +5303,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safemem" @@ -5203,22 +5324,21 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "schemars" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ - "chrono", "dyn-clone", - "indexmap 2.6.0", + "indexmap 2.9.0", "schemars_derive", "serde", "serde_json", @@ -5227,14 +5347,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "serde_derive_internals", - "syn 2.0.87", + "syn 2.0.100", ] [[package]] @@ -5255,7 +5375,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.8", + "ring 0.17.14", "untrusted 0.9.0", ] @@ -5285,8 +5405,21 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", - "core-foundation", + "bitflags 2.9.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -5294,9 +5427,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -5304,9 +5437,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" @@ -5319,9 +5452,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.15" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] @@ -5332,9 +5465,9 @@ version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -5343,19 +5476,19 @@ version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "serde_html_form" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5" +checksum = "9d2de91cf02bbc07cde38891769ccd5d4f073d22a40683aa4bc7a95781aaa2c4" dependencies = [ "form_urlencoded", - "indexmap 2.6.0", + "indexmap 2.9.0", "itoa", "ryu", "serde", @@ -5375,9 +5508,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" dependencies = [ "itoa", "serde", @@ -5389,11 +5522,11 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b417bedc008acbdf6d6b4bc482d29859924114bbe2650b7921fb68a261d0aa6" dependencies = [ - "axum 0.8.1", + "axum 0.8.3", "futures", "percent-encoding", "serde", - "thiserror 2.0.3", + "thiserror 2.0.12", ] [[package]] @@ -5423,7 +5556,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.9.0", "itoa", "ryu", "serde", @@ -5528,9 +5661,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "smol_str" @@ -5543,9 +5676,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5584,7 +5717,7 @@ checksum = "18d31fab47d9290be28a8d027c8428756826f1d4fe1e5ba0f51d24f52c568e21" dependencies = [ "async-dnssd", "async-recursion", - "bitflags 2.6.0", + "bitflags 2.9.0", "byteorder", "cfg-if", "crypto-mac", @@ -5608,7 +5741,7 @@ dependencies = [ "sha1", "sha2", "time", - "tokio 1.44.1", + "tokio 1.44.2", "tracing", "url", "uuid", @@ -5659,19 +5792,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.87" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", + "proc-macro2 1.0.94", + "quote 1.0.40", "unicode-ident", ] @@ -5683,9 +5816,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -5696,9 +5829,9 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -5734,14 +5867,14 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", + "getrandom 0.3.2", "once_cell", - "rustix", + "rustix 1.0.5", "windows-sys 0.59.0", ] @@ -5750,7 +5883,7 @@ name = "terminal-streamer" version = "0.1.0" dependencies = [ "anyhow", - "tokio 1.44.1", + "tokio 1.44.2", "tracing", ] @@ -5762,49 +5895,49 @@ dependencies = [ "futures-util", "portpicker", "proptest", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-tungstenite", "transport", ] [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.68", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -5819,9 +5952,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -5836,15 +5969,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -5877,9 +6010,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -5892,9 +6025,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tls_codec" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e78c9c330f8c85b2bae7c8368f2739157db9991235123aa1b15ef9502bfb6a" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" dependencies = [ "tls_codec_derive", "zeroize", @@ -5902,13 +6035,13 @@ dependencies = [ [[package]] name = "tls_codec_derive" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9ef545650e79f30233c0003bcc2504d7efac6dad25fca40744de773fe2049c" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -5925,16 +6058,16 @@ dependencies = [ [[package]] name = "tokio" -version = "1.44.1" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", - "bytes 1.8.0", + "bytes 1.10.1", "libc", - "mio 1.0.2", + "mio 1.0.3", "parking_lot", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "signal-hook-registry", "socket2", "tokio-macros", @@ -5948,8 +6081,8 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "pin-project-lite 0.2.15", - "tokio 1.44.1", + "pin-project-lite 0.2.16", + "tokio 1.44.2", ] [[package]] @@ -5958,9 +6091,9 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -5970,7 +6103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] @@ -5981,7 +6114,7 @@ checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" dependencies = [ "async-trait", "byteorder", - "bytes 1.8.0", + "bytes 1.10.1", "fallible-iterator 0.2.0", "futures-channel", "futures-util", @@ -5989,12 +6122,12 @@ dependencies = [ "parking_lot", "percent-encoding", "phf", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "postgres-protocol", "postgres-types", "rand 0.9.0", "socket2", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "whoami", ] @@ -6005,9 +6138,20 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ - "pin-project 1.1.7", + "pin-project 1.1.10", "rand 0.8.5", - "tokio 1.44.1", + "tokio 1.44.2", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio 1.44.2", ] [[package]] @@ -6017,18 +6161,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls 0.23.25", - "tokio 1.44.1", + "tokio 1.44.2", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", - "pin-project-lite 0.2.15", - "tokio 1.44.1", + "pin-project-lite 0.2.16", + "tokio 1.44.2", ] [[package]] @@ -6038,9 +6182,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", - "bytes 1.8.0", + "bytes 1.10.1", "futures-core", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-stream", ] @@ -6054,11 +6198,11 @@ dependencies = [ "log", "native-tls", "rustls 0.23.25", - "rustls-native-certs", + "rustls-native-certs 0.8.1", "rustls-pki-types", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.26.2", "tungstenite", ] @@ -6068,19 +6212,19 @@ version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ - "bytes 1.8.0", + "bytes 1.10.1", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.15", - "tokio 1.44.1", + "pin-project-lite 0.2.16", + "tokio 1.44.2", ] [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", @@ -6099,11 +6243,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", @@ -6120,16 +6264,16 @@ dependencies = [ "async-trait", "axum 0.6.20", "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.10.1", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.31", + "hyper 0.14.32", "hyper-timeout", "percent-encoding", - "pin-project 1.1.7", + "pin-project 1.1.10", "prost", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -6144,11 +6288,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1" dependencies = [ "base64 0.21.7", - "bytes 1.8.0", + "bytes 1.10.1", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.31", - "pin-project 1.1.7", + "hyper 0.14.32", + "pin-project 1.1.10", "tokio-stream", "tonic", "tower-http 0.4.4", @@ -6184,11 +6328,11 @@ dependencies = [ "futures-core", "futures-util", "indexmap 1.9.3", - "pin-project 1.1.7", - "pin-project-lite 0.2.15", + "pin-project 1.1.10", + "pin-project-lite 0.2.16", "rand 0.8.5", "slab", - "tokio 1.44.1", + "tokio 1.44.2", "tokio-util", "tower-layer", "tower-service", @@ -6203,9 +6347,9 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "pin-project-lite 0.2.15", - "sync_wrapper 1.0.1", - "tokio 1.44.1", + "pin-project-lite 0.2.16", + "sync_wrapper 1.0.2", + "tokio 1.44.2", "tower-layer", "tower-service", "tracing", @@ -6242,14 +6386,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.6.0", - "bytes 1.8.0", + "bitflags 2.9.0", + "bytes 1.10.1", "futures-core", "futures-util", "http 0.2.12", "http-body 0.4.6", "http-range-header 0.3.1", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "tower 0.4.13", "tower-layer", "tower-service", @@ -6262,19 +6406,19 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.6.0", - "bytes 1.8.0", + "bitflags 2.9.0", + "bytes 1.10.1", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "http-range-header 0.4.1", + "http-range-header 0.4.2", "httpdate", "mime", "mime_guess", "percent-encoding", - "pin-project-lite 0.2.15", - "tokio 1.44.1", + "pin-project-lite 0.2.16", + "tokio 1.44.2", "tokio-util", "tower-layer", "tower-service", @@ -6377,7 +6521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "tracing-attributes", "tracing-core", ] @@ -6388,7 +6532,7 @@ version = "0.2.999" source = "git+https://github.com/CBenoit/tracing.git?rev=42097daf92e683cf18da7639ddccb056721a796c#42097daf92e683cf18da7639ddccb056721a796c" dependencies = [ "crossbeam-channel", - "thiserror 1.0.68", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -6399,9 +6543,9 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -6461,10 +6605,10 @@ dependencies = [ "futures-sink", "futures-util", "parking_lot", - "pin-project-lite 0.2.15", + "pin-project-lite 0.2.16", "proptest", "test-utils", - "tokio 1.44.1", + "tokio 1.44.2", "tracing", ] @@ -6481,9 +6625,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", - "bytes 1.8.0", + "bytes 1.10.1", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "native-tls", @@ -6491,7 +6635,7 @@ dependencies = [ "rustls 0.23.25", "rustls-pki-types", "sha1", - "thiserror 1.0.68", + "thiserror 1.0.69", "utf-8", ] @@ -6510,25 +6654,24 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ulid" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f903f293d11f31c0c29e4148f6dc0d033a7f80cebc0282bea147611667d289" +checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ - "getrandom 0.2.15", - "rand 0.8.5", + "rand 0.9.0", "uuid", "web-time", ] @@ -6550,9 +6693,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bidi" @@ -6562,9 +6705,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -6617,9 +6760,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -6651,7 +6794,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.9.0", "serde", "serde_json", "serde_yaml", @@ -6665,27 +6808,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "uuid", ] [[package]] name = "uuid" -version = "1.11.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.2", "serde", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -6704,14 +6847,14 @@ name = "video-streamer" version = "0.0.0" dependencies = [ "anyhow", - "axum 0.7.7", + "axum 0.7.9", "cadeau", "ebml-iterable", "futures", "futures-util", "num_cpus", - "thiserror 2.0.3", - "tokio 1.44.1", + "thiserror 2.0.12", + "tokio 1.44.2", "tokio-tungstenite", "tokio-util", "tracing", @@ -6732,9 +6875,9 @@ dependencies = [ [[package]] name = "vswhom-sys" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" dependencies = [ "cc", "libc", @@ -6742,9 +6885,9 @@ dependencies = [ [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] @@ -6791,76 +6934,80 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ - "quote 1.0.37", + "quote 1.0.40", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -6871,9 +7018,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -6904,10 +7051,19 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.8", + "ring 0.17.14", "untrusted 0.9.0", ] +[[package]] +name = "webpki-roots" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "4.4.2" @@ -6917,7 +7073,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix", + "rustix 0.38.44", ] [[package]] @@ -6939,9 +7095,9 @@ checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "win-api-wrappers" @@ -6950,10 +7106,10 @@ dependencies = [ "anyhow", "base16ct", "rstest", - "thiserror 1.0.68", + "thiserror 1.0.69", "tracing", "uuid", - "widestring 1.1.0", + "widestring 1.2.0", "windows 0.58.0", ] @@ -7042,22 +7198,46 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", "windows-strings 0.1.0", "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement 0.60.0", + "windows-interface 0.59.1", + "windows-link", + "windows-result 0.3.2", + "windows-strings 0.4.0", +] + [[package]] name = "windows-implement" version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -7066,18 +7246,35 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + [[package]] name = "windows-registry" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -7088,11 +7285,22 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-strings 0.2.0", "windows-targets 0.52.6", ] +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result 0.3.2", + "windows-strings 0.3.1", + "windows-targets 0.53.0", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -7102,13 +7310,22 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-targets 0.52.6", ] @@ -7121,6 +7338,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -7196,13 +7431,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -7221,6 +7472,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -7239,6 +7496,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -7257,12 +7520,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -7281,6 +7556,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -7299,6 +7580,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -7317,6 +7604,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -7335,11 +7628,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] @@ -7389,7 +7688,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -7448,9 +7747,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -7460,13 +7759,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "synstructure", ] @@ -7495,9 +7794,9 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -7506,29 +7805,29 @@ version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", "synstructure", ] @@ -7547,9 +7846,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] [[package]] @@ -7569,7 +7868,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "proc-macro2 1.0.88", - "quote 1.0.37", - "syn 2.0.87", + "proc-macro2 1.0.94", + "quote 1.0.40", + "syn 2.0.100", ] From d0a562ce48b5f9ab7b7b601cf45babc80e1588bf Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:44:54 -0400 Subject: [PATCH 07/26] Restore Cargo.toml; fix merge issue Desired changes were removed in the Cargo.toml reversion commit. They are restored now. A few `mod` statements are moved outside of the Windows-only block. --- crates/devolutions-pedm/Cargo.toml | 11 ++++++----- crates/devolutions-pedm/src/lib.rs | 7 ++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/crates/devolutions-pedm/Cargo.toml b/crates/devolutions-pedm/Cargo.toml index 972212eb4..6f3a2a4a7 100644 --- a/crates/devolutions-pedm/Cargo.toml +++ b/crates/devolutions-pedm/Cargo.toml @@ -14,10 +14,11 @@ anyhow = "1.0" axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "query", "tracing", "tower-log", "form", "original-uri", "matched-path"] } base16ct = { version = "0.2", features = ["std", "alloc"] } base64 = "0.22" +chrono = { version = "0.4", features = ["serde"] } digest = "0.10" hyper = { version = "1.3", features = ["server"] } hyper-util = { version = "0.1", features = ["tokio"] } -schemars = "0.8" +schemars = { version = "0.8", features = ["chrono"] } serde = "1.0" serde_json = "1.0" sha1 = "0.10" @@ -39,10 +40,10 @@ uuid = "1" dunce = "1.0" tower = "0.5" futures-util = "0.3" -libsql = { version = "0.9", optional = true, features = [ "core", "stream"] } -tokio-postgres = { version = "0.7", optional = true } -bb8 = { version = "0.9.0", optional = true } -bb8-postgres = { version = "0.9.0", optional = true } +libsql = { version = "0.9", optional = true, default-features = false, features = [ "core", "sync"] } +tokio-postgres = { version = "0.7", optional = true, features = ["with-chrono-0_4"] } +bb8 = { version = "0.9", optional = true } +bb8-postgres = { version = "0.9", optional = true } [features] default = ["libsql"] diff --git a/crates/devolutions-pedm/src/lib.rs b/crates/devolutions-pedm/src/lib.rs index 7f2088263..929582552 100644 --- a/crates/devolutions-pedm/src/lib.rs +++ b/crates/devolutions-pedm/src/lib.rs @@ -1,16 +1,17 @@ use async_trait::async_trait; use camino::Utf8PathBuf; +use devolutions_gateway_task::{ShutdownSignal, Task}; + +mod config; +mod db; pub mod model; pub use config::Config; -use devolutions_gateway_task::{ShutdownSignal, Task}; cfg_if::cfg_if! { if #[cfg(target_os = "windows")] { pub mod api; - mod db; - mod config; mod elevations; mod elevator; mod error; From 8ddcbdd4858bad625138eb9c2511e079aa7fa15f Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:46:55 -0400 Subject: [PATCH 08/26] Update Cargo.lock --- Cargo.lock | 105 ++++++++--------------------------------------------- 1 file changed, 16 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 12f203dd2..7b5fe030f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -866,6 +866,7 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", "windows-link", ] @@ -1225,7 +1226,7 @@ dependencies = [ "tap", "thiserror 1.0.69", "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio-rustls", "tracing", "uuid", "win-api-wrappers", @@ -1305,7 +1306,7 @@ dependencies = [ "thiserror 1.0.69", "time", "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-test", "tokio-tungstenite", "tower 0.5.2", @@ -1368,6 +1369,7 @@ dependencies = [ "bb8-postgres", "camino", "cfg-if", + "chrono", "devolutions-agent-shared", "devolutions-gateway-task", "devolutions-pedm-shared", @@ -2338,24 +2340,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "log", - "rustls 0.22.4", - "rustls-native-certs 0.7.3", - "rustls-pki-types", - "tokio 1.44.2", - "tokio-rustls 0.25.0", - "webpki-roots", -] - [[package]] name = "hyper-rustls" version = "0.27.5" @@ -2367,10 +2351,10 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio-rustls", "tower-service", ] @@ -2895,7 +2879,7 @@ dependencies = [ "ironrdp-svc", "ironrdp-tokio", "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio-rustls", "tracing", ] @@ -2966,7 +2950,7 @@ dependencies = [ "proxy-types", "proxy_cfg", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile 2.2.0", "seahorse", "sysinfo", @@ -3156,7 +3140,6 @@ dependencies = [ "futures", "http 0.2.12", "hyper 0.14.32", - "hyper-rustls 0.25.0", "libsql-hrana", "libsql-sqlite3-parser", "libsql-sys", @@ -4456,6 +4439,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" dependencies = [ "bytes 1.10.1", + "chrono", "fallible-iterator 0.2.0", "postgres-protocol", ] @@ -4939,7 +4923,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -4950,7 +4934,7 @@ dependencies = [ "pin-project-lite 0.2.16", "quinn", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -4958,7 +4942,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 1.0.2", "tokio 1.44.2", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-util", "tower 0.5.2", "tower-service", @@ -5167,20 +5151,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.14", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.25" @@ -5192,7 +5162,7 @@ dependencies = [ "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki", "subtle", "zeroize", ] @@ -5208,19 +5178,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -5260,17 +5217,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring 0.17.14", - "rustls-pki-types", - "untrusted 0.9.0", -] - [[package]] name = "rustls-webpki" version = "0.103.1" @@ -5337,6 +5283,7 @@ version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ + "chrono", "dyn-clone", "indexmap 2.9.0", "schemars_derive", @@ -6143,17 +6090,6 @@ dependencies = [ "tokio 1.44.2", ] -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio 1.44.2", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -6198,11 +6134,11 @@ dependencies = [ "log", "native-tls", "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio 1.44.2", "tokio-native-tls", - "tokio-rustls 0.26.2", + "tokio-rustls", "tungstenite", ] @@ -7055,15 +6991,6 @@ dependencies = [ "untrusted 0.9.0", ] -[[package]] -name = "webpki-roots" -version = "0.26.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "which" version = "4.4.2" From f477e90e258edcbaf972e0103a99bfb67e276ae9 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:49:18 -0400 Subject: [PATCH 09/26] Correct typo --- crates/devolutions-pedm/src/db/err.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/devolutions-pedm/src/db/err.rs b/crates/devolutions-pedm/src/db/err.rs index c8974602f..44ef2a677 100644 --- a/crates/devolutions-pedm/src/db/err.rs +++ b/crates/devolutions-pedm/src/db/err.rs @@ -17,7 +17,7 @@ pub enum DbError { Libsql(libsql::Error), /// This is to handle some type conversions. /// - /// For example, we may have a value that is `i16` in the data model but it is stored as `i32` in libSQL. + /// For example, we may have a value that is `i16` in the data model but it is stored as `i64` in libSQL. #[cfg(feature = "libsql")] TryFromInt(TryFromIntError), #[cfg(feature = "libsql")] From 6655c5f2897e3896c7c9e9aab0050f146d3a47e9 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:52:27 -0400 Subject: [PATCH 10/26] Fetch integer as i64 SQLite stores integers in 64 bit. If we try to get i32, it is just [cast internally](https://docs.rs/libsql/0.9.2/src/libsql/rows.rs.html#169-177) as i32. The logic for fallible int conversion is already written. This commit makes use of it and makes it explicit that we are actually retrieving an i64 from the database before converting it to our model type. --- crates/devolutions-pedm/src/db/libsql.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/devolutions-pedm/src/db/libsql.rs b/crates/devolutions-pedm/src/db/libsql.rs index c3c12af74..ba6d02edd 100644 --- a/crates/devolutions-pedm/src/db/libsql.rs +++ b/crates/devolutions-pedm/src/db/libsql.rs @@ -41,7 +41,7 @@ impl Database for LibsqlConn { let version = self .query_one("SELECT version FROM pedm_schema_version", ()) .await? - .get::(0)?; + .get::(0)?; Ok(i16::try_from(version)?) } From 5869fcacb4e4040e25dac1bbdd1e0441e5e03df8 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 00:39:13 -0400 Subject: [PATCH 11/26] Remove extra line --- crates/devolutions-pedm/src/api/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index c5d39c782..1fdbc3492 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -185,7 +185,6 @@ pub async fn serve(config: Config) -> Result<(), ServeError> { let mut make_service = app.into_make_service_with_connect_info::(); - let pipe_name = &config.pipe_name; let pipe_name = &config.pipe_name; let mut server = create_pipe(pipe_name)?; From 72bae7b402d0802dd6f7fda23de65a871e903d62 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 00:47:10 -0400 Subject: [PATCH 12/26] Rename tables `pedm_` prefix is removed. The usage was inconsistent. `pedm_schema_version` is now simply `version`. The database is meant for isolated PEDM usage. This is expressed in the example config, with a database name of `pedm` or file of `pedm.sqlite`. --- crates/devolutions-pedm/schema/libsql.sql | 6 +++--- crates/devolutions-pedm/schema/pg.sql | 6 +++--- crates/devolutions-pedm/src/db/libsql.rs | 4 ++-- crates/devolutions-pedm/src/db/mod.rs | 2 +- crates/devolutions-pedm/src/db/pg.rs | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/devolutions-pedm/schema/libsql.sql b/crates/devolutions-pedm/schema/libsql.sql index 8a80e1d15..3c3b0a759 100644 --- a/crates/devolutions-pedm/schema/libsql.sql +++ b/crates/devolutions-pedm/schema/libsql.sql @@ -2,7 +2,7 @@ Use `chrono::DateTime::timestamp_micros` when inserting or fetching timestamps in Rust. */ -CREATE TABLE IF NOT EXISTS pedm_schema_version +CREATE TABLE IF NOT EXISTS version ( version integer PRIMARY KEY, updated_at integer NOT NULL DEFAULT ( @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS pedm_schema_version ) ); -CREATE TABLE IF NOT EXISTS pedm_run +CREATE TABLE IF NOT EXISTS run ( id integer PRIMARY KEY AUTOINCREMENT, start_time integer NOT NULL DEFAULT ( @@ -36,4 +36,4 @@ CREATE TABLE IF NOT EXISTS elevate_tmp_request seconds integer NOT NULL ); -INSERT INTO pedm_schema_version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file +INSERT INTO version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/schema/pg.sql b/crates/devolutions-pedm/schema/pg.sql index 52feb736f..a8af99c44 100644 --- a/crates/devolutions-pedm/schema/pg.sql +++ b/crates/devolutions-pedm/schema/pg.sql @@ -1,11 +1,11 @@ -CREATE TABLE IF NOT EXISTS pedm_schema_version +CREATE TABLE IF NOT EXISTS version ( version smallint PRIMARY KEY, add_time timestamptz NOT NULL DEFAULT NOW() ); /* The startup of the server */ -CREATE TABLE IF NOT EXISTS pedm_run +CREATE TABLE IF NOT EXISTS run ( id int PRIMARY KEY GENERATED ALWAYS AS IDENTITY, start_time timestamptz NOT NULL DEFAULT NOW(), @@ -28,4 +28,4 @@ CREATE TABLE IF NOT EXISTS elevate_tmp_request seconds int NOT NULL ); -INSERT INTO pedm_schema_version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file +INSERT INTO version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/src/db/libsql.rs b/crates/devolutions-pedm/src/db/libsql.rs index ba6d02edd..20335dbdc 100644 --- a/crates/devolutions-pedm/src/db/libsql.rs +++ b/crates/devolutions-pedm/src/db/libsql.rs @@ -39,7 +39,7 @@ impl Deref for LibsqlConn { impl Database for LibsqlConn { async fn get_schema_version(&self) -> Result { let version = self - .query_one("SELECT version FROM pedm_schema_version", ()) + .query_one("SELECT version FROM version", ()) .await? .get::(0)?; Ok(i16::try_from(version)?) @@ -79,7 +79,7 @@ impl Database for LibsqlConn { async fn log_server_startup(&self, start_time: DateTime, pipe_name: &str) -> Result { Ok(self .query_one( - "INSERT INTO pedm_run (start_time, pipe_name) VALUES (?1, ?2) RETURNING id", + "INSERT INTO run (start_time, pipe_name) VALUES (?1, ?2) RETURNING id", params![start_time.timestamp_micros(), pipe_name], ) .await? diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index 988765c3d..481e5a871 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -160,7 +160,7 @@ impl From for InitSchemaError { /// All queries required by the application are defined here. They must be implemented by each backend. #[async_trait] pub(crate) trait Database: Send + Sync { - /// Returns the schema version from the `pedm_schema_version` table. + /// Returns the schema version from the `version` table. async fn get_schema_version(&self) -> Result; /// Initializes the database schema. diff --git a/crates/devolutions-pedm/src/db/pg.rs b/crates/devolutions-pedm/src/db/pg.rs index 7660d3a78..7b8ed8f73 100644 --- a/crates/devolutions-pedm/src/db/pg.rs +++ b/crates/devolutions-pedm/src/db/pg.rs @@ -30,7 +30,7 @@ impl Database for PgPool { Ok(self .get() .await? - .query_one("SELECT version FROM pedm_schema_version", &[]) + .query_one("SELECT version FROM version", &[]) .await? .get(0)) } @@ -66,7 +66,7 @@ impl Database for PgPool { .get() .await? .query_one( - "INSERT INTO pedm_run (start_time, pipe_name) VALUES ($1, $2) RETURNING id", + "INSERT INTO run (start_time, pipe_name) VALUES ($1, $2) RETURNING id", &[&start_time, &pipe_name], ) .await? From d52f5b3c71502bd5e9ac9f804d69f401e14fef3e Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 01:04:49 -0400 Subject: [PATCH 13/26] Style: variable name --- crates/devolutions-pedm/src/db/mod.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index 481e5a871..bfc254ead 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -108,12 +108,13 @@ impl Db { }) } } - Err(db_err) => { - if db_err.is_table_does_not_exist() { + Err(error) => { + if error.is_table_does_not_exist() { + info!("Initializing schema"); self.0.init_schema().await?; Ok(()) } else { - Err(db_err.into()) + Err(error.into()) } } } From 8d01f31c90a7cd24dba0143454311e6e3aa46b20 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 01:08:15 -0400 Subject: [PATCH 14/26] fmt --- crates/devolutions-pedm/src/db/libsql.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/crates/devolutions-pedm/src/db/libsql.rs b/crates/devolutions-pedm/src/db/libsql.rs index 20335dbdc..80e721c96 100644 --- a/crates/devolutions-pedm/src/db/libsql.rs +++ b/crates/devolutions-pedm/src/db/libsql.rs @@ -38,10 +38,7 @@ impl Deref for LibsqlConn { #[async_trait] impl Database for LibsqlConn { async fn get_schema_version(&self) -> Result { - let version = self - .query_one("SELECT version FROM version", ()) - .await? - .get::(0)?; + let version = self.query_one("SELECT version FROM version", ()).await?.get::(0)?; Ok(i16::try_from(version)?) } From 49abe221fea619d50d44c1e384a6c8884c9d4b0d Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 09:08:36 -0400 Subject: [PATCH 15/26] Use `self::` when importing from current module --- crates/devolutions-pedm/src/api/mod.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index 1fdbc3492..11d955c67 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -47,13 +47,13 @@ mod revoke; pub(crate) mod state; mod status; -use about::about; -use elevate_session::elevate_session; -use elevate_temporary::elevate_temporary; -use launch::post_launch; -use revoke::post_revoke; -use state::{AppState, AppStateError}; -use status::get_status; +use self::about::about; +use self::elevate_session::elevate_session; +use self::elevate_temporary::elevate_temporary; +use self::launch::post_launch; +use self::revoke::post_revoke; +use self::state::{AppState, AppStateError}; +use self::status::get_status; #[derive(Debug, Clone)] struct NamedPipeConnectInfo { From 33956e52b6ee5e73fbb12da2289d7955a83850b5 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 09:22:03 -0400 Subject: [PATCH 16/26] Minor fmt and doc changes - use `DateTime` `Display` instead of `Debug` in `ParseTimestampError` `Display` - comments should go above `#[cfg(feature)]` - adds random comments --- crates/devolutions-pedm/src/api/err.rs | 2 ++ crates/devolutions-pedm/src/db/err.rs | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/devolutions-pedm/src/api/err.rs b/crates/devolutions-pedm/src/api/err.rs index b4429905c..192ee983f 100644 --- a/crates/devolutions-pedm/src/api/err.rs +++ b/crates/devolutions-pedm/src/api/err.rs @@ -6,6 +6,8 @@ use hyper::StatusCode; use crate::db::DbError; /// An error type for route handlers. +/// +/// The error contains a status code and an optional error message. #[derive(Debug)] pub(crate) struct HandlerError(StatusCode, Option); diff --git a/crates/devolutions-pedm/src/db/err.rs b/crates/devolutions-pedm/src/db/err.rs index 44ef2a677..c94b21f8f 100644 --- a/crates/devolutions-pedm/src/db/err.rs +++ b/crates/devolutions-pedm/src/db/err.rs @@ -20,6 +20,7 @@ pub enum DbError { /// For example, we may have a value that is `i16` in the data model but it is stored as `i64` in libSQL. #[cfg(feature = "libsql")] TryFromInt(TryFromIntError), + /// An error that occurs when parsing microseconds since epoch into `chrono::DateTime`. #[cfg(feature = "libsql")] Timestamp(ParseTimestampError), #[cfg(feature = "postgres")] @@ -106,8 +107,8 @@ impl DbError { } } -#[cfg(feature = "libsql")] /// A custom error type equivalent for `chrono::LocalResult`. +#[cfg(feature = "libsql")] #[derive(Debug)] pub enum ParseTimestampError { None, @@ -127,7 +128,7 @@ impl fmt::Display for ParseTimestampError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::None => write!(f, "no timestamp found"), - Self::Ambiguous(dt1, dt2) => write!(f, "ambiguous timestamp: {dt1:?} or {dt2:?}"), + Self::Ambiguous(dt1, dt2) => write!(f, "ambiguous timestamp: {dt1} or {dt2}"), } } } From 332df23686249a22a93682cc7b562f9252b34d61 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 09:30:05 -0400 Subject: [PATCH 17/26] fmt --- crates/devolutions-pedm/src/api/err.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/devolutions-pedm/src/api/err.rs b/crates/devolutions-pedm/src/api/err.rs index 192ee983f..77e46e4ec 100644 --- a/crates/devolutions-pedm/src/api/err.rs +++ b/crates/devolutions-pedm/src/api/err.rs @@ -6,7 +6,7 @@ use hyper::StatusCode; use crate::db::DbError; /// An error type for route handlers. -/// +/// /// The error contains a status code and an optional error message. #[derive(Debug)] pub(crate) struct HandlerError(StatusCode, Option); From 65f36c00f203411e89eaccc60f3f3c9ed9ab36ab Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:03:53 -0400 Subject: [PATCH 18/26] Fix bug in LogLayer Postgres `log_http_layer` was calling `query_one` when nothing was returned. The database was still written but the function returned an error. --- crates/devolutions-pedm/src/api/mod.rs | 8 ++++++-- crates/devolutions-pedm/src/db/pg.rs | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index 11d955c67..67db15510 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -340,8 +340,12 @@ where info!("request ID: {req_id}, status code: {status_code}"); tokio::spawn(async move { #[expect(clippy::cast_possible_wrap)] - db.log_http_request(req_id, method.as_str(), &path, status_code.as_u16() as i16) - .await?; + if let Err(error) = db + .log_http_request(req_id, method.as_str(), &path, status_code.as_u16() as i16) + .await + { + error!(%error, "Failed to log HTTP request"); + } Ok::<_, DbError>(()) }); Ok(resp) diff --git a/crates/devolutions-pedm/src/db/pg.rs b/crates/devolutions-pedm/src/db/pg.rs index 7b8ed8f73..118b0c56b 100644 --- a/crates/devolutions-pedm/src/db/pg.rs +++ b/crates/devolutions-pedm/src/db/pg.rs @@ -76,7 +76,7 @@ impl Database for PgPool { async fn log_http_request(&self, req_id: i32, method: &str, path: &str, status_code: i16) -> Result<(), DbError> { self.get() .await? - .query_one( + .execute( "INSERT INTO http_request (id, method, path, status_code) VALUES ($1, $2, $3, $4)", &[&req_id, &method, &path, &status_code], ) From e4208b2365b9e7b550527a1575c5c3349b39adf8 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:18:03 -0400 Subject: [PATCH 19/26] Remove unnecessary unwrap This one was a bit funny. `query_opt` returns `Option`. It was doing `opt_row.map(|r| r.get::<_, Option(0))`, which would be `Some(Some(D))` or `None` if the row was not found. With `unwrap_or_default`, this was returning `Some(D)` or `None`, which is perfectly well. However, the actual column is not nullable so `opt_row.map(|r| r.get::<_, D>(0))` is simpler. --- crates/devolutions-pedm/src/db/pg.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/devolutions-pedm/src/db/pg.rs b/crates/devolutions-pedm/src/db/pg.rs index 118b0c56b..31782b7f8 100644 --- a/crates/devolutions-pedm/src/db/pg.rs +++ b/crates/devolutions-pedm/src/db/pg.rs @@ -57,8 +57,7 @@ impl Database for PgPool { .await? .query_opt("SELECT at FROM http_request ORDER BY id DESC LIMIT 1", &[]) .await? - .map(|r| r.get(0)) - .unwrap_or_default()) + .map(|r| r.get(0))) } async fn log_server_startup(&self, start_time: DateTime, pipe_name: &str) -> Result { From 9d82ae77d540b5557490a32dd8b817b4b7552cfb Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:29:45 -0400 Subject: [PATCH 20/26] Rename request count in `/about` This disambiguates `requests_received` and `request_count`. --- crates/devolutions-pedm/src/api/about.rs | 2 +- crates/devolutions-pedm/src/api/state.rs | 2 +- crates/devolutions-pedm/src/model.rs | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/devolutions-pedm/src/api/about.rs b/crates/devolutions-pedm/src/api/about.rs index bb81ab0dd..5ac730886 100644 --- a/crates/devolutions-pedm/src/api/about.rs +++ b/crates/devolutions-pedm/src/api/about.rs @@ -14,7 +14,7 @@ pub(crate) async fn about( NoApi(State(state)): NoApi>, NoApi(Db(db)): NoApi, ) -> Result, HandlerError> { - let requests_received = state.req_counter.load(Ordering::Relaxed) - state.startup_info.request_count; + let requests_received = state.req_counter.load(Ordering::Relaxed) - state.startup_info.startup_request_count; Ok(Json(AboutData { startup_info: state.startup_info, diff --git a/crates/devolutions-pedm/src/api/state.rs b/crates/devolutions-pedm/src/api/state.rs index 73b84b531..a571a1d65 100644 --- a/crates/devolutions-pedm/src/api/state.rs +++ b/crates/devolutions-pedm/src/api/state.rs @@ -36,7 +36,7 @@ impl AppState { let startup_info = StartupInfo { run_id, - request_count: last_req_id, + startup_request_count: last_req_id, start_time: startup_time, }; diff --git a/crates/devolutions-pedm/src/model.rs b/crates/devolutions-pedm/src/model.rs index b27e69baf..1b9e81728 100644 --- a/crates/devolutions-pedm/src/model.rs +++ b/crates/devolutions-pedm/src/model.rs @@ -22,6 +22,7 @@ pub(crate) struct AboutData { #[serde(rename_all = "PascalCase")] pub(crate) struct StartupInfo { pub(crate) run_id: i32, - pub(crate) request_count: i32, + /// The request count at the time of the server startup. + pub(crate) startup_request_count: i32, pub(crate) start_time: DateTime, } From 435fe4b47eb099c7bb9b7627120e278e0d8a8383 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:34:40 -0400 Subject: [PATCH 21/26] Update Cargo.lock --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7b5fe030f..7f4799e6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3267,9 +3267,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -5135,7 +5135,7 @@ dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] From c17bdc528a30f64f245ae47d1e163928de2128bb Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Thu, 10 Apr 2025 09:57:50 -0400 Subject: [PATCH 22/26] Rename request counts in `AboutData` This further disambiguates `startup_request_count` and `current_request_count` in `AboutData`. --- crates/devolutions-pedm/src/api/about.rs | 8 ++++---- crates/devolutions-pedm/src/api/state.rs | 2 +- crates/devolutions-pedm/src/model.rs | 15 +++++++-------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/crates/devolutions-pedm/src/api/about.rs b/crates/devolutions-pedm/src/api/about.rs index 5ac730886..e2104229a 100644 --- a/crates/devolutions-pedm/src/api/about.rs +++ b/crates/devolutions-pedm/src/api/about.rs @@ -14,11 +14,11 @@ pub(crate) async fn about( NoApi(State(state)): NoApi>, NoApi(Db(db)): NoApi, ) -> Result, HandlerError> { - let requests_received = state.req_counter.load(Ordering::Relaxed) - state.startup_info.startup_request_count; - Ok(Json(AboutData { - startup_info: state.startup_info, - requests_received, + run_id: state.startup_info.run_id, + start_time: state.startup_info.start_time, + startup_request_count: state.startup_info.request_count, + current_request_count: state.req_counter.load(Ordering::Relaxed), last_request_time: db.get_last_request_time().await?, })) } diff --git a/crates/devolutions-pedm/src/api/state.rs b/crates/devolutions-pedm/src/api/state.rs index a571a1d65..73b84b531 100644 --- a/crates/devolutions-pedm/src/api/state.rs +++ b/crates/devolutions-pedm/src/api/state.rs @@ -36,7 +36,7 @@ impl AppState { let startup_info = StartupInfo { run_id, - startup_request_count: last_req_id, + request_count: last_req_id, start_time: startup_time, }; diff --git a/crates/devolutions-pedm/src/model.rs b/crates/devolutions-pedm/src/model.rs index 1b9e81728..4c98af6a5 100644 --- a/crates/devolutions-pedm/src/model.rs +++ b/crates/devolutions-pedm/src/model.rs @@ -5,10 +5,10 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] #[serde(rename_all = "PascalCase")] pub(crate) struct AboutData { - #[serde(flatten)] - pub startup_info: StartupInfo, - /// The number of requests received since the server started. - pub requests_received: i32, + pub run_id: i32, + pub start_time: DateTime, + pub startup_request_count: i32, + pub current_request_count: i32, /// The time of the most recent request. /// /// This can be `None` if `/about` is the first request made. @@ -18,11 +18,10 @@ pub(crate) struct AboutData { /// Immutable startup info. /// /// It is used in the `/about` endpoint. -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)] -#[serde(rename_all = "PascalCase")] +#[derive(Clone)] pub(crate) struct StartupInfo { pub(crate) run_id: i32, - /// The request count at the time of the server startup. - pub(crate) startup_request_count: i32, pub(crate) start_time: DateTime, + /// The request count at the time of the server startup. + pub(crate) request_count: i32, } From 61960d1faa229a9fbe1f7bb98099c90b0d2afaf3 Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Thu, 10 Apr 2025 10:04:06 -0400 Subject: [PATCH 23/26] Reorder imports I went through every file in the crate. --- crates/devolutions-pedm/src/api/about.rs | 5 +++-- crates/devolutions-pedm/src/db/err.rs | 4 ++-- crates/devolutions-pedm/src/db/mod.rs | 9 ++++----- crates/devolutions-pedm/src/utils.rs | 8 +++++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/crates/devolutions-pedm/src/api/about.rs b/crates/devolutions-pedm/src/api/about.rs index e2104229a..1ca388a5e 100644 --- a/crates/devolutions-pedm/src/api/about.rs +++ b/crates/devolutions-pedm/src/api/about.rs @@ -4,11 +4,12 @@ use aide::NoApi; use axum::extract::State; use axum::Json; -use super::err::HandlerError; -use super::state::AppState; use crate::db::Db; use crate::model::AboutData; +use super::err::HandlerError; +use super::state::AppState; + /// Gets info about the current state of the application. pub(crate) async fn about( NoApi(State(state)): NoApi>, diff --git a/crates/devolutions-pedm/src/db/err.rs b/crates/devolutions-pedm/src/db/err.rs index c94b21f8f..8dfe50e0f 100644 --- a/crates/devolutions-pedm/src/db/err.rs +++ b/crates/devolutions-pedm/src/db/err.rs @@ -2,10 +2,10 @@ use core::error::Error; use core::fmt; #[cfg(feature = "libsql")] -use chrono::{DateTime, Utc}; +use std::num::TryFromIntError; #[cfg(feature = "libsql")] -use std::num::TryFromIntError; +use chrono::{DateTime, Utc}; #[cfg(feature = "postgres")] use tokio_postgres::error::SqlState; diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index bfc254ead..096f8f2d1 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -3,10 +3,13 @@ use std::ops::Deref; use std::sync::Arc; use async_trait::async_trait; +use chrono::{DateTime, Utc}; +use tracing::info; mod err; -use chrono::{DateTime, Utc}; +use crate::config::DbBackend; +use crate::Config; pub(crate) use err::DbError; #[cfg(feature = "libsql")] @@ -27,10 +30,6 @@ use bb8_postgres::PostgresConnectionManager; use tokio_postgres::config::SslMode; #[cfg(feature = "postgres")] use tokio_postgres::NoTls; -use tracing::info; - -use crate::config::DbBackend; -use crate::Config; /// A wrapper around the database connection. #[derive(Clone)] diff --git a/crates/devolutions-pedm/src/utils.rs b/crates/devolutions-pedm/src/utils.rs index 273d7c293..60d88044c 100644 --- a/crates/devolutions-pedm/src/utils.rs +++ b/crates/devolutions-pedm/src/utils.rs @@ -1,11 +1,13 @@ +use std::collections::HashMap; +use std::fs; +use std::path::Path; + use devolutions_pedm_shared::policy::{Hash, User}; use digest::Update; use sha1::Sha1; use sha2::{Digest, Sha256}; -use std::collections::HashMap; -use std::fs; -use std::path::Path; use tracing::info; + use win_api_wrappers::fs::create_directory; use win_api_wrappers::identity::account::Account; use win_api_wrappers::identity::sid::Sid; From fd30525c51a619c68c2caf431a1305ec8e89442f Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Thu, 10 Apr 2025 10:38:33 -0400 Subject: [PATCH 24/26] Rename `init_schema` to `setup` on `Db` wrapper --- crates/devolutions-pedm/src/api/mod.rs | 2 +- crates/devolutions-pedm/src/db/mod.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/devolutions-pedm/src/api/mod.rs b/crates/devolutions-pedm/src/api/mod.rs index 67db15510..78caa9f58 100644 --- a/crates/devolutions-pedm/src/api/mod.rs +++ b/crates/devolutions-pedm/src/api/mod.rs @@ -171,7 +171,7 @@ async fn health_check() -> &'static str { /// Initializes the appliation and starts the named pipe server. pub async fn serve(config: Config) -> Result<(), ServeError> { let db = Db::new(&config).await?; - db.init_schema().await?; + db.setup().await?; let state = AppState::new(db, &config.pipe_name).await?; diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index 096f8f2d1..4e558cb9e 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -93,8 +93,8 @@ impl Db { Ok(Self(db)) } - /// Initializes the database schema if needed. - pub(crate) async fn init_schema(&self) -> Result<(), InitSchemaError> { + /// Sets up the database. + pub(crate) async fn setup(&self) -> Result<(), InitSchemaError> { match self.0.get_schema_version().await { Ok(version) => { info!("Schema version: {version}"); From 4eed8925512d280b1611902bcac8800103569e1c Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Thu, 10 Apr 2025 11:04:15 -0400 Subject: [PATCH 25/26] Add pragma placeholder This adds a placeholder for backend-specific setup code, such as pragma tuning on SQLite. --- crates/devolutions-pedm/src/db/libsql.rs | 8 +++++++- crates/devolutions-pedm/src/db/mod.rs | 22 ++++++++++++++-------- crates/devolutions-pedm/src/db/pg.rs | 5 +++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/crates/devolutions-pedm/src/db/libsql.rs b/crates/devolutions-pedm/src/db/libsql.rs index 80e721c96..889da0a4f 100644 --- a/crates/devolutions-pedm/src/db/libsql.rs +++ b/crates/devolutions-pedm/src/db/libsql.rs @@ -4,9 +4,10 @@ use async_trait::async_trait; use chrono::{DateTime, Utc}; use libsql::params::IntoParams; use libsql::{params, Row}; +use tracing::info; use super::err::ParseTimestampError; -use super::{Database, DbError}; +use super::{Database, DbError, InitSchemaError}; pub(crate) struct LibsqlConn(libsql::Connection); @@ -48,6 +49,11 @@ impl Database for LibsqlConn { Ok(()) } + async fn apply_pragmas(&self) -> Result<(), DbError> { + // TODO: run pragmas + Ok(()) + } + async fn get_last_request_id(&self) -> Result { match self .query_one("SELECT id FROM http_request ORDER BY id DESC LIMIT 1", ()) diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index 4e558cb9e..b00ac869d 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -31,6 +31,8 @@ use tokio_postgres::config::SslMode; #[cfg(feature = "postgres")] use tokio_postgres::NoTls; +pub(crate) const CURRENT_SCHEMA_VERSION: i16 = 1; + /// A wrapper around the database connection. #[derive(Clone)] pub(crate) struct Db(pub Arc); @@ -94,29 +96,30 @@ impl Db { } /// Sets up the database. + /// + /// The schema version is checked. Tables are created if needed, such as for first run. pub(crate) async fn setup(&self) -> Result<(), InitSchemaError> { match self.0.get_schema_version().await { Ok(version) => { info!("Schema version: {version}"); - if version == 1 { - Ok(()) - } else { - Err(InitSchemaError::VersionMismatch { - expected: 1, + if version != CURRENT_SCHEMA_VERSION { + return Err(InitSchemaError::VersionMismatch { + expected: CURRENT_SCHEMA_VERSION, actual: version, - }) + }); } } Err(error) => { if error.is_table_does_not_exist() { info!("Initializing schema"); self.0.init_schema().await?; - Ok(()) } else { - Err(error.into()) + return Err(error.into()); } } } + self.0.apply_pragmas().await?; + Ok(()) } } @@ -168,6 +171,9 @@ pub(crate) trait Database: Send + Sync { /// This creates tables. async fn init_schema(&self) -> Result<(), DbError>; + /// Applies pragmas, if applicable. + async fn apply_pragmas(&self) -> Result<(), DbError>; + /// Gets the latest request ID from the HTTP request table. /// /// This is used to set the atomic request counter. diff --git a/crates/devolutions-pedm/src/db/pg.rs b/crates/devolutions-pedm/src/db/pg.rs index 31782b7f8..95d49b670 100644 --- a/crates/devolutions-pedm/src/db/pg.rs +++ b/crates/devolutions-pedm/src/db/pg.rs @@ -41,6 +41,11 @@ impl Database for PgPool { Ok(()) } + async fn apply_pragmas(&self) -> Result<(), DbError> { + // nothing to do + Ok(()) + } + async fn get_last_request_id(&self) -> Result { Ok(self .get() From 2203fb9b6be42f9337a1f73a25abee15d925efed Mon Sep 17 00:00:00 2001 From: Allan Zhang <6740989+allan2@users.noreply.github.com> Date: Thu, 10 Apr 2025 12:24:37 -0400 Subject: [PATCH 26/26] Change initial schema version to 0 --- crates/devolutions-pedm/schema/libsql.sql | 2 +- crates/devolutions-pedm/schema/pg.sql | 2 +- crates/devolutions-pedm/src/db/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/devolutions-pedm/schema/libsql.sql b/crates/devolutions-pedm/schema/libsql.sql index 3c3b0a759..1f280aa72 100644 --- a/crates/devolutions-pedm/schema/libsql.sql +++ b/crates/devolutions-pedm/schema/libsql.sql @@ -36,4 +36,4 @@ CREATE TABLE IF NOT EXISTS elevate_tmp_request seconds integer NOT NULL ); -INSERT INTO version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file +INSERT INTO version (version) VALUES (0) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/schema/pg.sql b/crates/devolutions-pedm/schema/pg.sql index a8af99c44..393df9ca4 100644 --- a/crates/devolutions-pedm/schema/pg.sql +++ b/crates/devolutions-pedm/schema/pg.sql @@ -28,4 +28,4 @@ CREATE TABLE IF NOT EXISTS elevate_tmp_request seconds int NOT NULL ); -INSERT INTO version (version) VALUES (1) ON CONFLICT DO NOTHING; \ No newline at end of file +INSERT INTO version (version) VALUES (0) ON CONFLICT DO NOTHING; \ No newline at end of file diff --git a/crates/devolutions-pedm/src/db/mod.rs b/crates/devolutions-pedm/src/db/mod.rs index b00ac869d..b009c7f6f 100644 --- a/crates/devolutions-pedm/src/db/mod.rs +++ b/crates/devolutions-pedm/src/db/mod.rs @@ -31,7 +31,7 @@ use tokio_postgres::config::SslMode; #[cfg(feature = "postgres")] use tokio_postgres::NoTls; -pub(crate) const CURRENT_SCHEMA_VERSION: i16 = 1; +pub(crate) const CURRENT_SCHEMA_VERSION: i16 = 0; /// A wrapper around the database connection. #[derive(Clone)]