# koruma > koruma is a per-field validation framework for Rust focused on type safety, ergonomics, and developer experience. It generates strongly typed validation error structs at compile time using derive macros. Key features: - Define reusable validator structs with `#[validator]` - Attach validators to fields with `#[koruma(...)]` - Derive `Koruma` on data types for typed error accessors - Optional i18n support via Project Fluent and `es-fluent` - Nested validation and newtype pattern support - Built-in validator collection via `koruma-collection` crate ## Docs - [Introduction](https://stayhydated.github.io/koruma/book/introduction.html) - [Getting Started](https://stayhydated.github.io/koruma/book/getting_started.html) - [Declaring Validators](https://stayhydated.github.io/koruma/book/declare_validators.html) - [Using Validators](https://stayhydated.github.io/koruma/book/using_validators.html) - [Multiple Validators & Error Handling](https://stayhydated.github.io/koruma/book/error_handling.html) - [i18n Integration with es-fluent](https://stayhydated.github.io/koruma/book/i18n_integration.html) - [Nested Validation](https://stayhydated.github.io/koruma/book/nested_validation.html) - [Newtype Pattern & TryFrom](https://stayhydated.github.io/koruma/book/newtype_pattern.html) - [koruma-collection](https://stayhydated.github.io/koruma/book/koruma_collection.html)