Expand description
Confers - Production-ready Rust configuration library.
A zero-boilerplate configuration library following BrickArchitecture:
- Derive macro driven configuration loading
- Multi-source with priority chain
- Hot reload with progressive deployment
- Encryption for sensitive fields
- Type-safe configuration keys
§Quick Start
ⓘ
use confers::{new_in_memory, ConfigConnector, ConfigReader, ConfigWriter, ConfigValue, AnnotatedValue, SourceId};
// Create in-memory config (for testing)
let config = new_in_memory();
// Use the config
let value = AnnotatedValue::new(ConfigValue::string("value"), SourceId::default(), "key");
config.set("key", value).await?;
let str_value = config.get_string("key").await?;
// Lifecycle methods
config.health_check().await?;
config.shutdown().await;§BrickArchitecture Error Separation
This library separates configuration phase errors from runtime errors:
ConfigConfigError— Initialization errors (missing fields, parse errors, validation failures)ConfersError— Runtime errors (timeout, remote unavailable, decryption failures)
Use new_in_memory() for the canonical in-memory configuration factory:
use confers::{new_in_memory, interface::ConfigConnector};
let config = new_in_memory();Re-exports§
pub use lifecycle::Lifecycle;pub use config::config;pub use config::ConfigBuilder;pub use config::ConfigLimits;pub use config::DefaultSource;pub use config::EnvSource;pub use config::FileSource;pub use config::MemorySource;pub use config::ReloadStrategy;pub use config::Source;pub use config::SourceChain;pub use config::SourceChainBuilder;pub use config::SourceKind;pub use error::BuildResult;pub use error::ConfersError;pub use error::ConfersResult;pub use error::ConfigConfigError;pub use error::ConfigError;pub use error::ConfigErrorCode;pub use error::ConfigResult;pub use error::ErrorCode;pub use error::InitResult;pub use error::ParseLocation;pub use error::SourceWarning;pub use interface::ConfigConnector;pub use interface::ConfigProvider;pub use interface::ConfigProviderExt;pub use interface::ConfigReader;pub use interface::ConfigWriter;pub use interface::KeyProvider;pub use interface::TypedConfigKey;pub use types::AnnotatedValue;pub use types::ConfigValue;pub use types::KeyCachePolicy;pub use types::NoOpMetrics;pub use types::SourceId;pub use types::SourceLocation;pub use types::ZeroizingBytes;pub use loader::detect_format_from_content;pub use loader::detect_format_from_path;pub use loader::load_file;pub use loader::parse_content;pub use loader::Format;pub use loader::LoaderConfig;
Modules§
- config
- Configuration loading and building — public facade.
- error
- Error handling for confers configuration library.
- format
- Format converter re-exports.
- interface
- Core trait definitions for confers.
- lifecycle
- Component lifecycle management — public facade.
- loader
- Configuration file loaders with precise error locations.
- merger
- Configuration merge engine.
- prelude
- Prelude for common imports.
- types
- Configuration value types for confers.
Functions§
- new_
in_ memory - Create an in-memory configuration store.
Derive Macros§
- Config
- Derive macro for configuration loading.
- Config
Clap - Derive macro for generating CLI arguments.
- Config
Migration - Derive macro for generating migration support.
- Config
Modules - Derive macro for generating module registry.
- Config
Schema - Derive macro for generating JSON Schema.