aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-11-11 15:14:49 +0100
committermetamuffin <metamuffin@disroot.org>2024-11-11 15:14:49 +0100
commit3f6ec191b38b4c60ac2d42ab941b4690f42f7c21 (patch)
tree4a0d266da9670bd8179406f82a08c05047029fc3
parentc59e34ac28b8af16c522b6f685015770c0be7223 (diff)
downloadgnix-3f6ec191b38b4c60ac2d42ab941b4690f42f7c21.tar
gnix-3f6ec191b38b4c60ac2d42ab941b4690f42f7c21.tar.bz2
gnix-3f6ec191b38b4c60ac2d42ab941b4690f42f7c21.tar.zst
switch to serde_yml from unmaintained serde_yaml
-rw-r--r--Cargo.lock42
-rw-r--r--Cargo.toml4
-rw-r--r--src/config.rs4
-rw-r--r--src/modules/accesslog.rs4
-rw-r--r--src/modules/auth/basic.rs4
-rw-r--r--src/modules/auth/cookie.rs4
-rw-r--r--src/modules/auth/mod.rs2
-rw-r--r--src/modules/auth/openid.rs4
-rw-r--r--src/modules/cache.rs4
-rw-r--r--src/modules/cgi.rs4
-rw-r--r--src/modules/debug.rs4
-rw-r--r--src/modules/error.rs4
-rw-r--r--src/modules/file.rs4
-rw-r--r--src/modules/files.rs4
-rw-r--r--src/modules/headers.rs4
-rw-r--r--src/modules/hosts.rs4
-rw-r--r--src/modules/loadbalance.rs4
-rw-r--r--src/modules/mod.rs2
-rw-r--r--src/modules/paths.rs4
-rw-r--r--src/modules/proxy.rs4
-rw-r--r--src/modules/redirect.rs4
-rw-r--r--src/modules/switch.rs4
22 files changed, 64 insertions, 58 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 482d131..bf66813 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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"
diff --git a/Cargo.toml b/Cargo.toml
index f89b679..aa2e27c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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)?))
}
}