invariance 0.1.1

A Rust crate providing type-safe, validated configuration to prevent runtime crashes from invalid config data.
Documentation

invariance

Crates.io Docs.rs Build Status License

A Rust crate providing type-safe, validated configuration for preventing runtime crashes caused by invalid config data.


Overview

invariance helps you define configuration structs with strong typing and validation logic. It ensures that configurations loaded from files (currently TOML and JSON) are always validated before use, preventing null pointer errors, invalid states, and unexpected runtime failures.

The crate provides:

  • A Config trait with default implementations for parsing configuration from strings in multiple formats (e.g., TOML, JSON).
  • A Validate trait for implementing custom validation logic.
  • Clear and descriptive error handling via ConfigError.
  • Basic schema generation by printing default values as examples.

Getting Started

To use invariance in your Rust project, add it to your Cargo.toml using:

cargo add invariance

Features & Roadmap

  • Strongly typed config parsing from TOML and JSON strings
  • Custom validation with clear error reporting
  • Trait-based design with minimal boilerplate

  • Support for additional formats: YAML
  • CLI tools for config validation
  • Macro-driven validation DSL
  • Schema generation and introspection