diff options
-rw-r--r-- | Cargo.lock | 42 | ||||
-rw-r--r-- | Cargo.toml | 4 | ||||
-rw-r--r-- | src/config.rs | 4 | ||||
-rw-r--r-- | src/modules/accesslog.rs | 4 | ||||
-rw-r--r-- | src/modules/auth/basic.rs | 4 | ||||
-rw-r--r-- | src/modules/auth/cookie.rs | 4 | ||||
-rw-r--r-- | src/modules/auth/mod.rs | 2 | ||||
-rw-r--r-- | src/modules/auth/openid.rs | 4 | ||||
-rw-r--r-- | src/modules/cache.rs | 4 | ||||
-rw-r--r-- | src/modules/cgi.rs | 4 | ||||
-rw-r--r-- | src/modules/debug.rs | 4 | ||||
-rw-r--r-- | src/modules/error.rs | 4 | ||||
-rw-r--r-- | src/modules/file.rs | 4 | ||||
-rw-r--r-- | src/modules/files.rs | 4 | ||||
-rw-r--r-- | src/modules/headers.rs | 4 | ||||
-rw-r--r-- | src/modules/hosts.rs | 4 | ||||
-rw-r--r-- | src/modules/loadbalance.rs | 4 | ||||
-rw-r--r-- | src/modules/mod.rs | 2 | ||||
-rw-r--r-- | src/modules/paths.rs | 4 | ||||
-rw-r--r-- | src/modules/proxy.rs | 4 | ||||
-rw-r--r-- | src/modules/redirect.rs | 4 | ||||
-rw-r--r-- | src/modules/switch.rs | 4 |
22 files changed, 64 insertions, 58 deletions
@@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -618,7 +618,7 @@ dependencies = [ "rustls-webpki", "serde", "serde_json", - "serde_yaml", + "serde_yml", "sha2", "thiserror", "tokio", @@ -909,6 +909,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] +name = "libyml" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3302702afa434ffa30847a83305f0a69d6abd74293b6554c18ec85c7ef30c980" +dependencies = [ + "anyhow", + "version_check", +] + +[[package]] name = "linux-raw-sys" version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1370,16 +1380,18 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" +name = "serde_yml" +version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd" dependencies = [ "indexmap", "itoa", + "libyml", + "memchr", "ryu", "serde", - "unsafe-libyaml", + "version_check", ] [[package]] @@ -1458,9 +1470,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.75" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -1469,18 +1481,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", @@ -1597,12 +1609,6 @@ dependencies = [ ] [[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -37,7 +37,7 @@ pin-project = "1.1.5" # Config serde = { version = "1.0.208", features = ["derive"] } -serde_yaml = "0.9.34" +serde_yml = "0.0.12" serde_json = "1.0.125" inotify = "0.11.0" @@ -59,6 +59,6 @@ rand = "0.9.0-alpha.2" # Other helpers and stuff bytes = "1.7.1" anyhow = "1.0.86" -thiserror = "1.0.63" +thiserror = "2.0.3" regex = "1.10.6" users = "0.11.0" diff --git a/src/config.rs b/src/config.rs index a6f7d1b..196b489 100644 --- a/src/config.rs +++ b/src/config.rs @@ -10,7 +10,7 @@ use serde::{ de::{value, Error, SeqAccess, Visitor}, Deserialize, Deserializer, Serialize, }; -use serde_yaml::value::TaggedValue; +use serde_yml::value::TaggedValue; use std::{ collections::BTreeMap, fmt, @@ -180,7 +180,7 @@ impl Config { pub fn load(path: &Path) -> anyhow::Result<Config> { info!("loading config from {path:?}"); let raw = read_to_string(path).context("reading config file")?; - let config: Config = serde_yaml::from_str(&raw).context("during parsing")?; + let config: Config = serde_yml::from_str(&raw).context("during parsing")?; Ok(config) } } diff --git a/src/modules/accesslog.rs b/src/modules/accesslog.rs index 1da6e5d..c745599 100644 --- a/src/modules/accesslog.rs +++ b/src/modules/accesslog.rs @@ -31,9 +31,9 @@ impl NodeKind for AccessLogKind { fn name(&self) -> &'static str { "access_log" } - fn instanciate(&self, config: serde_yaml::Value) -> anyhow::Result<Arc<dyn Node>> { + fn instanciate(&self, config: serde_yml::Value) -> anyhow::Result<Arc<dyn Node>> { Ok(Arc::new(AccessLog { - config: serde_yaml::from_value::<AccessLogConfig>(config)?, + config: serde_yml::from_value::<AccessLogConfig>(config)?, file: Default::default(), })) } diff --git a/src/modules/auth/basic.rs b/src/modules/auth/basic.rs index 9af5b01..fb8301a 100644 --- a/src/modules/auth/basic.rs +++ b/src/modules/auth/basic.rs @@ -12,7 +12,7 @@ use hyper::{ }; use log::debug; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{pin::Pin, sync::Arc}; use super::Credentials; @@ -23,7 +23,7 @@ impl NodeKind for HttpBasicAuthKind { "http_basic_auth" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<HttpBasicAuth>(config)?)) + Ok(Arc::new(serde_yml::from_value::<HttpBasicAuth>(config)?)) } } diff --git a/src/modules/auth/cookie.rs b/src/modules/auth/cookie.rs index ed8c889..fbc54c8 100644 --- a/src/modules/auth/cookie.rs +++ b/src/modules/auth/cookie.rs @@ -19,7 +19,7 @@ use log::debug; use percent_encoding::{percent_decode_str, percent_encode, NON_ALPHANUMERIC}; use rand::random; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::fmt::Write; use std::{pin::Pin, sync::Arc, time::SystemTime}; @@ -31,7 +31,7 @@ impl NodeKind for CookieAuthKind { "cookie_auth" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<CookieAuth>(config)?)) + Ok(Arc::new(serde_yml::from_value::<CookieAuth>(config)?)) } } diff --git a/src/modules/auth/mod.rs b/src/modules/auth/mod.rs index 80d02ad..32dd0f2 100644 --- a/src/modules/auth/mod.rs +++ b/src/modules/auth/mod.rs @@ -55,7 +55,7 @@ impl<'de> Deserialize<'de> for Credentials { E: Error, { let path = String::deserialize(value::StrDeserializer::new(val))?; - let c = serde_yaml::from_str(&read_to_string(path).map_err(|io| { + let c = serde_yml::from_str(&read_to_string(path).map_err(|io| { serde::de::Error::custom(format!("cannot read creds file: {io:?}")) })?) .map_err(|e| serde::de::Error::custom(format!("cannot parse creds file: {e:?}")))?; diff --git a/src/modules/auth/openid.rs b/src/modules/auth/openid.rs index 1e5a063..db03c2f 100644 --- a/src/modules/auth/openid.rs +++ b/src/modules/auth/openid.rs @@ -22,7 +22,7 @@ use log::info; use percent_encoding::{percent_decode, utf8_percent_encode, NON_ALPHANUMERIC}; use rand::random; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use sha2::{Digest, Sha256}; use std::{io::Read, pin::Pin, str::FromStr, sync::Arc}; use tokio::net::TcpStream; @@ -33,7 +33,7 @@ impl NodeKind for OpenIDAuthKind { "openid_auth" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<OpenIDAuth>(config)?)) + Ok(Arc::new(serde_yml::from_value::<OpenIDAuth>(config)?)) } } diff --git a/src/modules/cache.rs b/src/modules/cache.rs index b07bbbb..68f011f 100644 --- a/src/modules/cache.rs +++ b/src/modules/cache.rs @@ -16,7 +16,7 @@ use bytes::Bytes; use http::Response; use http_body_util::{BodyExt, Full}; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use sha2::{Digest, Sha256}; use std::{collections::HashMap, future::Future, pin::Pin, sync::Arc}; use tokio::sync::RwLock; @@ -38,7 +38,7 @@ impl NodeKind for CacheKind { "cache" } fn instanciate(&self, config: Value) -> Result<Arc<dyn Node>> { - let config = serde_yaml::from_value::<CacheConfig>(config)?; + let config = serde_yml::from_value::<CacheConfig>(config)?; Ok(Arc::new(Cache { config, entries: HashMap::new().into(), diff --git a/src/modules/cgi.rs b/src/modules/cgi.rs index 9d9372f..2af8537 100644 --- a/src/modules/cgi.rs +++ b/src/modules/cgi.rs @@ -9,7 +9,7 @@ use hyper::{ Response, StatusCode, }; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{ future::Future, io::ErrorKind, path::PathBuf, pin::Pin, process::Stdio, str::FromStr, sync::Arc, }; @@ -38,7 +38,7 @@ impl NodeKind for CgiKind { "cgi" } fn instanciate(&self, config: Value) -> Result<Arc<dyn Node>> { - Ok(Arc::new(Cgi::new(serde_yaml::from_value::<CgiConfig>( + Ok(Arc::new(Cgi::new(serde_yml::from_value::<CgiConfig>( config, )?)?)) } diff --git a/src/modules/debug.rs b/src/modules/debug.rs index 04f9806..f0cfb98 100644 --- a/src/modules/debug.rs +++ b/src/modules/debug.rs @@ -4,7 +4,7 @@ use futures::Future; use http::{header::CONTENT_TYPE, HeaderValue, Response}; use http_body_util::BodyExt; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{pin::Pin, sync::Arc}; pub struct DebugKind; @@ -17,7 +17,7 @@ impl NodeKind for DebugKind { "debug" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Debug>(config)?)) + Ok(Arc::new(serde_yml::from_value::<Debug>(config)?)) } } diff --git a/src/modules/error.rs b/src/modules/error.rs index 01fe859..3e4cc79 100644 --- a/src/modules/error.rs +++ b/src/modules/error.rs @@ -2,7 +2,7 @@ use super::{Node, NodeContext, NodeKind, NodeRequest, NodeResponse}; use crate::error::ServiceError; use futures::Future; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{pin::Pin, sync::Arc}; pub struct ErrorKind; @@ -16,7 +16,7 @@ impl NodeKind for ErrorKind { "error" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Error>(config)?)) + Ok(Arc::new(serde_yml::from_value::<Error>(config)?)) } } diff --git a/src/modules/file.rs b/src/modules/file.rs index 53c27f4..74be40d 100644 --- a/src/modules/file.rs +++ b/src/modules/file.rs @@ -7,7 +7,7 @@ use hyper::{ Response, }; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{fs::read_to_string, path::PathBuf, pin::Pin, sync::Arc}; pub struct FileKind; @@ -30,7 +30,7 @@ impl NodeKind for FileKind { "file" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - let conf = serde_yaml::from_value::<FileConfig>(config)?; + let conf = serde_yml::from_value::<FileConfig>(config)?; Ok(Arc::new(File { content: conf .content diff --git a/src/modules/files.rs b/src/modules/files.rs index 76ef62c..15cc254 100644 --- a/src/modules/files.rs +++ b/src/modules/files.rs @@ -19,7 +19,7 @@ use hyper::{ use log::debug; use percent_encoding::percent_decode_str; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{ fs::Metadata, io, @@ -66,7 +66,7 @@ impl NodeKind for FilesKind { "files" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Files>(config)?)) + Ok(Arc::new(serde_yml::from_value::<Files>(config)?)) } } diff --git a/src/modules/headers.rs b/src/modules/headers.rs index ad4595a..52686eb 100644 --- a/src/modules/headers.rs +++ b/src/modules/headers.rs @@ -21,8 +21,8 @@ impl NodeKind for HeadersKind { fn name(&self) -> &'static str { "headers" } - fn instanciate(&self, config: serde_yaml::Value) -> Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Headers>(config)?)) + fn instanciate(&self, config: serde_yml::Value) -> Result<Arc<dyn Node>> { + Ok(Arc::new(serde_yml::from_value::<Headers>(config)?)) } } diff --git a/src/modules/hosts.rs b/src/modules/hosts.rs index 72d1afd..6bd213a 100644 --- a/src/modules/hosts.rs +++ b/src/modules/hosts.rs @@ -3,7 +3,7 @@ use crate::{config::DynNode, error::ServiceError}; use futures::Future; use hyper::header::HOST; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{collections::HashMap, pin::Pin, sync::Arc}; #[derive(Deserialize)] @@ -16,7 +16,7 @@ impl NodeKind for HostsKind { "hosts" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Hosts>(config)?)) + Ok(Arc::new(serde_yml::from_value::<Hosts>(config)?)) } } impl Node for Hosts { diff --git a/src/modules/loadbalance.rs b/src/modules/loadbalance.rs index 5358b03..d1a4a09 100644 --- a/src/modules/loadbalance.rs +++ b/src/modules/loadbalance.rs @@ -6,7 +6,7 @@ use super::{Node, NodeContext, NodeKind, NodeRequest, NodeResponse}; use crate::{config::DynNode, error::ServiceError}; use anyhow::Result; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{ future::Future, pin::Pin, @@ -31,7 +31,7 @@ impl NodeKind for LoadBalanceKind { "loadbalance" } fn instanciate(&self, config: Value) -> Result<Arc<dyn Node>> { - let config = serde_yaml::from_value::<LoadBalanceConfig>(config)?; + let config = serde_yml::from_value::<LoadBalanceConfig>(config)?; Ok(Arc::new(LoadBalance { load: config.0.iter().map(|_| AtomicUsize::new(0)).collect(), config, diff --git a/src/modules/mod.rs b/src/modules/mod.rs index fc4d603..288158c 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -4,7 +4,7 @@ use bytes::Bytes; use futures::Future; use http_body_util::combinators::BoxBody; use hyper::{body::Incoming, Request, Response}; -use serde_yaml::Value; +use serde_yml::Value; use std::{net::SocketAddr, pin::Pin, sync::Arc}; pub mod accesslog; diff --git a/src/modules/paths.rs b/src/modules/paths.rs index 8c6d0c5..755d550 100644 --- a/src/modules/paths.rs +++ b/src/modules/paths.rs @@ -3,7 +3,7 @@ use crate::{config::DynNode, error::ServiceError}; use futures::Future; use http::Uri; use regex::{Regex, RegexSet}; -use serde_yaml::Value; +use serde_yml::Value; use std::{collections::BTreeMap, pin::Pin, sync::Arc}; pub struct PathsKind; @@ -19,7 +19,7 @@ impl NodeKind for PathsKind { "paths" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - let routes = serde_yaml::from_value::<BTreeMap<String, DynNode>>(config)? + let routes = serde_yml::from_value::<BTreeMap<String, DynNode>>(config)? .into_iter() .collect::<Vec<(String, DynNode)>>(); diff --git a/src/modules/proxy.rs b/src/modules/proxy.rs index 925e456..763129f 100644 --- a/src/modules/proxy.rs +++ b/src/modules/proxy.rs @@ -6,7 +6,7 @@ use hyper::{http::HeaderValue, upgrade::OnUpgrade, StatusCode}; use hyper_util::rt::TokioIo; use log::{debug, warn}; use serde::Deserialize; -use serde_yaml::Value; +use serde_yml::Value; use std::{net::SocketAddr, pin::Pin, sync::Arc}; use tokio::net::TcpStream; @@ -23,7 +23,7 @@ impl NodeKind for ProxyKind { "proxy" } fn instanciate(&self, config: Value) -> anyhow::Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Proxy>(config)?)) + Ok(Arc::new(serde_yml::from_value::<Proxy>(config)?)) } } impl Node for Proxy { diff --git a/src/modules/redirect.rs b/src/modules/redirect.rs index e3fa599..1dc90af 100644 --- a/src/modules/redirect.rs +++ b/src/modules/redirect.rs @@ -16,8 +16,8 @@ impl NodeKind for RedirectKind { fn name(&self) -> &'static str { "redirect" } - fn instanciate(&self, config: serde_yaml::Value) -> Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Redirect>(config)?)) + fn instanciate(&self, config: serde_yml::Value) -> Result<Arc<dyn Node>> { + Ok(Arc::new(serde_yml::from_value::<Redirect>(config)?)) } } diff --git a/src/modules/switch.rs b/src/modules/switch.rs index 943a81d..289c406 100644 --- a/src/modules/switch.rs +++ b/src/modules/switch.rs @@ -20,8 +20,8 @@ impl NodeKind for SwitchKind { fn name(&self) -> &'static str { "switch" } - fn instanciate(&self, config: serde_yaml::Value) -> Result<Arc<dyn Node>> { - Ok(Arc::new(serde_yaml::from_value::<Switch>(config)?)) + fn instanciate(&self, config: serde_yml::Value) -> Result<Arc<dyn Node>> { + Ok(Arc::new(serde_yml::from_value::<Switch>(config)?)) } } |