live 0.3.2

A modular configuration framework with live reloading and atomic, format-agnostic updates.
Documentation
[package]
name = "live"
license = "MIT"
version = "0.3.2"
edition = "2024"
rust-version = "1.93"
categories = ["config", "asynchronous"]
description = "A modular configuration framework with live reloading and atomic, format-agnostic updates."
keywords = ["config", "live-reload", "atomic", "async", "monitoring"]
readme = "README.md"
repository = "https://github.com/canmi21/live.git"

[dependencies]
atomhold = { version = "0.2", optional = true }
fmtstruct = { version = "0.2", default-features = false, optional = true }
fsig = { version = "0.2", default-features = false, optional = true }
serde = { version = "1", optional = true }
thiserror = { version = "2", optional = true }
tokio = { version = "1", features = ["sync"], optional = true }
log = { version = "0.4", optional = true }

[features]
default = []
full = ["holder", "loader", "signal", "controller", "events", "fs", "json", "toml", "yaml", "validate", "match", "stream", "logging"]
holder = ["dep:atomhold"]
loader = ["dep:fmtstruct", "fmtstruct/std"]
signal = ["dep:fsig"]
controller = ["holder", "loader", "dep:serde", "dep:thiserror", "dep:tokio"]
events = ["holder", "atomhold/events", "dep:tokio"]
fs = ["loader", "fmtstruct/fs"]
json = ["loader", "fmtstruct/json"]
toml = ["loader", "fmtstruct/toml"]
yaml = ["loader", "fmtstruct/yaml"]
postcard = ["loader", "fmtstruct/postcard"]
validate = ["loader", "fmtstruct/validate"]
regex = ["loader", "fmtstruct/regex"]
match = ["signal", "fsig/match"]
stream = ["signal", "fsig/stream"]
serde = ["fsig?/serde"]
logging = ["fmtstruct?/logging", "dep:log"]

[[example]]
name = "basic"
required-features = ["full"]

[dev-dependencies]
serde = { version = "1", features = ["derive"] }
tempfile = "3"
tokio = { version = "1", features = ["full"] }
validator = { version = "0.20", features = ["derive"] }