chore: switch from yaml to toml
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m47s
Continuous Integration / Build Package (push) Successful in 2m20s

This commit is contained in:
Konstantin Fickel 2026-03-29 19:14:51 +02:00
parent ed493cff29
commit 8d07a86fc4
Signed by: kfickel
GPG key ID: A793722F9933C1A5
7 changed files with 66 additions and 32 deletions

74
Cargo.lock generated
View file

@ -678,12 +678,6 @@ version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
[[package]]
name = "ryu"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
[[package]] [[package]]
name = "same-file" name = "same-file"
version = "1.0.6" version = "1.0.6"
@ -743,16 +737,12 @@ dependencies = [
] ]
[[package]] [[package]]
name = "serde_yaml" name = "serde_spanned"
version = "0.9.34+deprecated" version = "0.6.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
dependencies = [ dependencies = [
"indexmap",
"itoa",
"ryu",
"serde", "serde",
"unsafe-libyaml",
] ]
[[package]] [[package]]
@ -777,9 +767,9 @@ dependencies = [
"pulldown-cmark", "pulldown-cmark",
"regex", "regex",
"serde", "serde",
"serde_yaml",
"tempfile", "tempfile",
"thiserror 2.0.18", "thiserror 2.0.18",
"toml",
"walkdir", "walkdir",
] ]
@ -894,6 +884,47 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "toml"
version = "0.8.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit",
]
[[package]]
name = "toml_datetime"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
"toml_write",
"winnow",
]
[[package]]
name = "toml_write"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
[[package]] [[package]]
name = "unicase" name = "unicase"
version = "2.9.0" version = "2.9.0"
@ -930,12 +961,6 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
[[package]]
name = "unsafe-libyaml"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]] [[package]]
name = "utf8parse" name = "utf8parse"
version = "0.2.2" version = "0.2.2"
@ -1198,6 +1223,15 @@ version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "winnow"
version = "0.7.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "wit-bindgen" name = "wit-bindgen"
version = "0.51.0" version = "0.51.0"

View file

@ -11,7 +11,7 @@ repository = "https://github.com/konstantinfickel/streamd"
clap = { version = "4", features = ["derive", "env"] } clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4" clap_complete = "4"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9" toml = "0.8"
thiserror = "2" thiserror = "2"
miette = { version = "7", features = ["fancy"] } miette = { version = "7", features = ["fancy"] }
pulldown-cmark = "0.12" pulldown-cmark = "0.12"

View file

@ -27,7 +27,7 @@ Within files, `@`-prefixed markers at the beginning of paragraphs or headings de
## Configuration ## Configuration
Streamd reads its configuration from `~/.config/streamd/config.yaml` (XDG standard). The main setting is `base_folder`, which points to the directory containing your stream files (defaults to the current working directory). Streamd reads its configuration from `~/.config/streamd/config.toml` (XDG standard). The main setting is `base_folder`, which points to the directory containing your stream files (defaults to the current working directory).
## Usage ## Usage

View file

@ -352,10 +352,10 @@ Provide recursive search through the shard tree:
### R22: Config File Location ### R22: Config File Location
The application configuration is stored at `~/.config/streamd/config.yaml`: The application configuration is stored at `~/.config/streamd/config.toml`:
```yaml ```toml
base_folder: /path/to/stream/files base_folder = "/path/to/stream/files"
``` ```
### R23: Environment Variable Override ### R23: Environment Variable Override

View file

@ -149,8 +149,8 @@
home.packages = [ cfg.package ]; home.packages = [ cfg.package ];
xdg.configFile."streamd/config.yaml".source = xdg.configFile."streamd/config.toml".source =
(pkgs.formats.yaml { }).generate "streamd-configuration" (pkgs.formats.toml { }).generate "streamd-configuration"
{ {
base_folder = cfg.base-folder; base_folder = cfg.base-folder;
}; };

View file

@ -27,7 +27,7 @@ impl Settings {
if config_path.exists() { if config_path.exists() {
let content = fs::read_to_string(&config_path)?; let content = fs::read_to_string(&config_path)?;
let settings: Settings = serde_yaml::from_str(&content)?; let settings: Settings = toml::from_str(&content)?;
Ok(settings) Ok(settings)
} else { } else {
Ok(Settings::default()) Ok(Settings::default())
@ -36,9 +36,9 @@ impl Settings {
fn config_path() -> PathBuf { fn config_path() -> PathBuf {
if let Some(proj_dirs) = ProjectDirs::from("", "", "streamd") { if let Some(proj_dirs) = ProjectDirs::from("", "", "streamd") {
proj_dirs.config_dir().join("config.yaml") proj_dirs.config_dir().join("config.toml")
} else { } else {
PathBuf::from("~/.config/streamd/config.yaml") PathBuf::from("~/.config/streamd/config.toml")
} }
} }
} }

View file

@ -14,8 +14,8 @@ pub enum StreamdError {
#[error("IO error: {0}")] #[error("IO error: {0}")]
IoError(#[from] std::io::Error), IoError(#[from] std::io::Error),
#[error("YAML error: {0}")] #[error("TOML error: {0}")]
YamlError(#[from] serde_yaml::Error), TomlError(#[from] toml::de::Error),
} }
impl From<StreamdError> for miette::Report { impl From<StreamdError> for miette::Report {