# jeremyskinner/fluentvalidation

**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/jeremyskinner-fluentvalidation).**

9,728 stars · 1,270 forks · C# · Apache-2.0

## Links

- GitHub: https://github.com/JeremySkinner/FluentValidation
- Homepage: https://fluentvalidation.net
- awesome-repositories: https://awesome-repositories.com/repository/jeremyskinner-fluentvalidation.md

## Description

FluentValidation is a strongly-typed data validation library for .NET. It functions as a rule engine and input validation framework used to define and execute complex business rules and constraints for data objects.

The library utilizes a fluent interface API, allowing the construction of readable and declarative validation constraints through method chaining. It leverages generics and lambda expressions to enforce data integrity and business logic at compile time.

The project covers the enforcement of business rules, strongly-typed data validation, and input sanitization workflows to verify that object properties meet specific schemas before processing.

## Tags

### Software Engineering & Architecture

- [Input Validation Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/input-validation-frameworks.md) — Provides a comprehensive framework for verifying that incoming requests and object properties meet specific schemas before processing.
- [.NET Data Validation](https://awesome-repositories.com/f/software-engineering-architecture/net-data-validation.md) — Ensures application input meets business rules and constraints using strongly-typed validation logic in .NET.
- [Data Type Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation.md) — Defines complex data constraints via a fluent interface to perform runtime type and schema validation.
- [Strongly-Typed Validators](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation/strongly-typed-validators.md) — Implements a strongly-typed validation system to enforce data integrity by checking object properties against defined rules.
- [Fluent Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/fluent-interfaces.md) — Implements a fluent interface design using method chaining to build readable, strongly-typed validation pipelines.
- [Validation Tools](https://awesome-repositories.com/f/software-engineering-architecture/fluent-interfaces/validation-tools.md) — Provides a validation tool using method chaining to create readable and declarative constraints for application input.
- [.NET Validation Libraries](https://awesome-repositories.com/f/software-engineering-architecture/net-validation-libraries.md) — A strongly-typed library for defining and executing complex business rules and constraints for data objects in .NET.
- [Boolean Predicates](https://awesome-repositories.com/f/software-engineering-architecture/boolean-predicates.md) — Executes boolean predicate functions against object properties to determine if validation constraints are met.
- [Lazy Evaluation Patterns](https://awesome-repositories.com/f/software-engineering-architecture/lazy-evaluation-patterns.md) — Defers the processing of validation rules until a specific trigger method is explicitly called.
- [Rule Execution Engines](https://awesome-repositories.com/f/software-engineering-architecture/rule-configuration-engines/rule-execution-engines.md) — Provides an execution engine that processes groups of modular validation constraints against target objects.

### Business & Productivity Software

- [Programmatic Rule Engines](https://awesome-repositories.com/f/business-productivity-software/programmatic-rule-engines.md) — Provides a strongly-typed rule engine using generics and lambda expressions to enforce business logic at compile time.

### Data & Databases

- [Business Invariant Enforcement](https://awesome-repositories.com/f/data-databases/data-validation/business-invariant-enforcement.md) — Translates complex domain requirements into programmable rules that enforce business invariants before data processing.
- [Lazy Evaluation Frameworks](https://awesome-repositories.com/f/data-databases/lazy-evaluation-frameworks.md) — Implements deferred execution of validation constraints to optimize when rules are evaluated.

### User Interface & Experience

- [Strongly-Typed Definitions](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation/input-validation-rules/strongly-typed-definitions.md) — Provides a fluent interface for creating strongly typed constraints that ensure input meets specific business criteria. ([source](https://github.com/jeremyskinner/fluentvalidation#readme))

### Programming Languages & Runtimes

- [Metadata Extraction](https://awesome-repositories.com/f/programming-languages-runtimes/expression-tree-compilation/metadata-extraction.md) — Translates lambda expressions into metadata to dynamically extract property names and values for validation reports.
- [Type Constraint Mapping](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/type-constraint-mapping.md) — Employs .NET generics and type constraints to ensure compile-time type safety between validators and objects.

### Security & Cryptography

- [Input Sanitization](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/web-security/input-sanitization.md) — Verifies incoming requests against predefined schemas to prevent invalid or malicious data from entering the system.

### Part of an Awesome List

- [General Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/general-utilities.md) — Fluent library for building validation rules.
