# keats/validator

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/keats-validator).**

2,488 stars · 184 forks · Rust · MIT

## Links

- GitHub: https://github.com/Keats/validator
- awesome-repositories: https://awesome-repositories.com/repository/keats-validator.md

## Description

This library is a declarative validation framework for Rust that enforces data integrity and business rules on structured data models. It utilizes procedural macros to transform attribute-based annotations into executable validation logic, ensuring that data structures adhere to defined constraints before processing.

The framework distinguishes itself by performing validation at compile time, which eliminates runtime overhead and provides strict type checking for all rules. It supports recursive traversal of nested data structures and collections, ensuring that every level of a hierarchy is verified. Beyond individual field constraints, the system provides hooks for cross-field consistency checks and allows for the integration of custom domain-specific functions to handle complex business requirements.

The library offers a unified interface for implementing custom validation routines across disparate data structures. It is distributed as a crate with documentation covering the application of declarative attributes to enforce formats, ranges, and structural integrity.

## Tags

### Data & Databases

- [Declarative Validation Frameworks](https://awesome-repositories.com/f/data-databases/serialization-frameworks/rust/declarative-validation-frameworks.md) — Enforces data integrity and business rules on Rust data structures using declarative attributes and custom validation logic.
- [Field Validation](https://awesome-repositories.com/f/data-databases/field-validation.md) — Applies declarative rules to data fields to ensure values meet specific criteria like formats, lengths, or ranges. ([source](https://github.com/keats/validator#readme))
- [Cross-Field Validators](https://awesome-repositories.com/f/data-databases/field-validation/cross-field-validators.md) — Evaluates logical consistency and relationships between multiple fields within a data model after individual field checks.
- [Recursive Hierarchy Validation](https://awesome-repositories.com/f/data-databases/nested-data-persistence/nested-schema-mapping/partial-nested-validation/recursive-hierarchy-validation.md) — Performs recursive validation on collections and sub-structures to ensure every level of the data hierarchy is verified. ([source](https://github.com/keats/validator#readme))

### Software Engineering & Architecture

- [Compile-Time Code Generation](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation.md) — Generates optimized validation code at build time to eliminate runtime overhead and ensure strict type checking.
- [Data Validation Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/data-validation-frameworks.md) — Provides a framework for defining and executing complex validation logic across data models.
- [Data Structure Traversers](https://awesome-repositories.com/f/software-engineering-architecture/recursive-validation-engines/recursive-tree-traversers/data-structure-traversers.md) — Recursively walks through nested data objects to apply validation constraints across the entire hierarchy.
- [Validation Trait Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/trait-based-service-abstractions/trait-based-deserialization/validation-trait-interfaces.md) — Defines a unified interface for implementing custom validation routines across disparate data structures.

### Part of an Awesome List

- [Struct Tag Validators](https://awesome-repositories.com/f/awesome-lists/devtools/field-validation/struct-tag-validators.md) — Uses declarative attributes to enforce constraints on struct fields and nested data structures in Rust.
- [Cross-Field Consistency Checkers](https://awesome-repositories.com/f/awesome-lists/devtools/field-validation/struct-tag-validators/cross-field-consistency-checkers.md) — Supports cross-field consistency checks to ensure the data structure remains valid as a whole unit. ([source](https://github.com/keats/validator#readme))

### Programming Languages & Runtimes

- [Procedural Macro Engines](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/metaprogramming-macros/hygienic-macro-systems/macro-expansion-engines/procedural-macro-engines.md) — Provides procedural macro-based code transformation to enforce validation rules at compile time.

### User Interface & Experience

- [Custom Logic Validation](https://awesome-repositories.com/f/user-interface-experience/input-validation-constraints/custom-logic-validation.md) — Allows execution of custom functions for complex domain-specific checks beyond standard validation rules. ([source](https://github.com/keats/validator#readme))

### Web Development

- [Schema Validation](https://awesome-repositories.com/f/web-development/schema-validation.md) — Applies validation rules to data structures using annotations to verify formats, ranges, and domain logic.
