1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! [![github]](https://github.com/LittleBoxOfSunshine/conspiracy) [![crates-io]](https://crates.io/crates/conspiracy) [![docs-rs]](https://docs.rs/conspiracy)
//!
//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github
//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust
//! [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs
//!
//! <br>
//!
//! Conspiracy is an opinionated, extensible configuration crate that applies the "rust ethos" to
//! configuration. It shifts as much validation to compile time as possible, ensures state changes
//! are consistent, and guarantees constructed states are valid through:
//!
//! - Static typing
//! - Atomic updates
//! - Facilities for composition (depending on only a sub-config without resorting to dynamic typing)
//! - Abstractions for high-performance, lock-free updates
//!
//! # Concepts, Usage, and Examples
//!
//! See the module documentation for each concept:
//!
//! - Configuration: [`config`]
//! - Feature Control: [`feature_control`]
//!
//! # Future Work
//!
//! These crates are still experimental. Most updates should expect breaking changes.
//!
//! Planned features:
//!
//! - A universal configuration fetcher implementation for runtime configuration updates supporting
//! - Layers
//! - Serde inputs
//! - Dynamic evaluation of configuration based on environment context with "Flighting" DSL.
//! - Enable universal feature tracker to track against a config input, enabling dynamic values + reboot required support.
//! - Support factoring a config struct into multiple partial definitions.