Skip to main content

Crate confers

Crate confers 

Source
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.
ConfigClap
Derive macro for generating CLI arguments.
ConfigMigration
Derive macro for generating migration support.
ConfigModules
Derive macro for generating module registry.
ConfigSchema
Derive macro for generating JSON Schema.