FluentValidation 12.0.0-preview1

FluentValidation is validation library for .NET that uses a fluent interface and lambda expressions for building strongly-typed validation rules.

Supporting the project

If you use FluentValidation in a commercial project, please sponsor the project financially. FluentValidation is developed and supported by @JeremySkinner for free in his spare time and financial sponsorship helps keep the project going. You can sponsor the project via either GitHub sponsors or OpenCollective.

Example

With FluentValidation, you can define a class that inherits from AbstractValidator which contains the rules for a particular class. The example below shows how you could define rules for a Customer class, and then how to execute the validator.

using FluentValidation;

public class CustomerValidator: AbstractValidator<Customer> {
  public CustomerValidator() {
    RuleFor(x => x.Surname).NotEmpty();
    RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");
    RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);
    RuleFor(x => x.Address).Length(20, 250);
    RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
  }

  private bool BeAValidPostcode(string postcode) {
    // custom postcode validating logic goes here
  }
}

var customer = new Customer();
var validator = new CustomerValidator();

// Execute the validator.
ValidationResult results = validator.Validate(customer);

// Inspect any validation failures.
bool success = results.IsValid;
List<ValidationFailure> failures = results.Errors;

Full Documentation

Full documentation can be found at https://docs.fluentvalidation.net

Release Notes and Change Log

Release notes can be found on GitHub.

Showing the top 20 packages that depend on FluentValidation.

Packages Downloads
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
185
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
188
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
189
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
198
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
201
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
215
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
223
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
436
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
784
FluentValidation.AspNetCore
AspNetCore integration for FluentValidation
1,192
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
196
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
211
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
241
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
443
FluentValidation.DependencyInjectionExtensions
Dependency injection extensions for FluentValidation
531
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
224
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
240
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
310
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
598
RulesEngine
Rules Engine is a package for abstracting business logic/rules/policies out of the system. This works in a very simple way by giving you an ability to put your rules in a store outside the core logic of the system thus ensuring that any change in rules doesn't affect the core system.
707

FluentValidation 12 is a major release. Please read the upgrade guide at https://docs.fluentvalidation.net/en/latest/upgrading-to-12.html Full release notes can be found at https://github.com/FluentValidation/FluentValidation/releases

.NET 8.0

  • No dependencies.

Version Downloads Last updated
12.2.0 0 10/10/2026
12.1.1 270 12/04/2025
12.1.0 256 11/04/2025
12.0.0 383 05/06/2025
12.0.0-preview1 138 01/03/2025
11.12.0 118 11/07/2025
11.11.0 381 11/20/2024
11.10.0 412 09/20/2024
11.9.2 300 06/27/2024
11.9.1 166 07/22/2024
11.9.0 322 02/05/2024
11.8.1 201 07/22/2024
11.8.0 167 07/22/2024
11.7.1 144 07/22/2024
11.7.0 153 07/22/2024
11.6.0 172 07/22/2024
11.5.2 158 07/22/2024
11.5.1 317 02/04/2024
11.5.0 158 07/22/2024
11.4.0 158 07/17/2024
11.3.0 181 02/04/2024
11.2.2 163 07/22/2024
11.2.1 171 07/22/2024
11.2.0 166 07/22/2024
11.1.1 155 07/22/2024
11.1.0 163 07/13/2024
11.0.3 171 07/22/2024
11.0.2 159 07/22/2024
11.0.1 154 07/22/2024
11.0.0 169 07/22/2024
10.4.0 269 02/04/2024
10.3.6 151 07/22/2024
10.3.5 141 07/22/2024
10.3.4 172 07/17/2024
10.3.3 166 07/17/2024
10.3.1 175 07/22/2024
10.3.0 155 05/29/2024
10.2.3 177 07/22/2024
10.2.2 158 07/22/2024
10.2.1 145 07/22/2024
10.2.0 159 07/22/2024
10.1.0 165 07/22/2024
10.0.4 182 07/22/2024
9.5.4 177 07/22/2024
9.5.3 156 07/22/2024
9.5.2 168 07/22/2024
9.5.1 152 07/22/2024
9.5.0 174 02/09/2024
9.4.0 164 07/22/2024
9.3.0 170 07/22/2024
9.3.0-preview3 171 07/22/2024
9.3.0-preview2 156 07/22/2024
9.3.0-preview1 193 07/22/2024
9.2.2 159 07/22/2024
9.2.1 154 07/18/2024
9.2.0 148 07/22/2024
9.1.3 174 07/22/2024
9.1.2 157 07/22/2024
9.1.1 154 07/22/2024
9.1.0 158 07/22/2024
9.0.1 168 07/22/2024
9.0.0-preview5 169 07/22/2024
9.0.0-preview4 146 07/22/2024
9.0.0-preview3 165 07/22/2024
9.0.0-preview2 148 07/22/2024
9.0.0-preview1 156 07/22/2024
8.6.3 166 07/22/2024
8.6.2 158 07/22/2024
8.6.1 154 07/22/2024
8.6.0 163 07/22/2024
8.5.1 158 07/21/2024
8.5.0 162 07/18/2024
8.5.0-preview5 160 07/22/2024
8.5.0-preview4 164 07/22/2024
8.5.0-preview3 161 07/22/2024
8.5.0-preview2 176 07/22/2024
8.5.0-preview1 153 07/22/2024
8.4.0 175 07/22/2024
8.3.0 167 07/22/2024
8.2.3 154 07/22/2024
8.2.2 156 07/22/2024
8.2.1 161 07/22/2024
8.2.0 167 07/22/2024
8.1.3 178 07/22/2024
8.1.2 154 07/22/2024
8.1.1 152 07/22/2024
8.1.0 179 07/22/2024
8.1.0-preview2 163 07/22/2024
8.1.0-preview1 164 07/22/2024
8.0.101 167 07/22/2024
8.0.100 155 07/17/2024
8.0.0 154 07/22/2024
8.0.0-rc1 166 07/22/2024
8.0.0-preview4 151 07/22/2024
8.0.0-preview3 160 07/22/2024
8.0.0-preview2 166 07/22/2024
7.6.105 147 07/22/2024
7.6.104 157 07/22/2024
7.6.103 153 07/22/2024
7.6.102 157 07/22/2024
7.6.101 158 07/22/2024
7.6.100 161 07/22/2024
7.6.0 169 07/22/2024
7.6.0-preview1 170 07/22/2024
7.5.2 151 07/22/2024
7.5.1 154 06/21/2024
7.5.0 164 07/22/2024
7.4.0 171 07/22/2024
7.3.4 153 07/22/2024
7.3.3 167 07/22/2024
7.3.2 155 07/22/2024
7.3.1 158 07/22/2024
7.3.0 159 07/22/2024
7.3.0-beta3 171 07/22/2024
7.3.0-beta2 167 07/22/2024
7.3.0-beta1 174 07/22/2024
7.2.1 162 07/22/2024
7.2.0 153 07/22/2024
7.2.0-beta3 154 07/22/2024
7.2.0-beta2 165 07/22/2024
7.2.0-beta1 185 07/22/2024
7.1.1 151 07/22/2024
7.1.0 146 07/22/2024
7.1.0-beta1 157 07/22/2024
7.0.3 159 07/22/2024
7.0.2 151 07/22/2024
7.0.1 171 07/22/2024
7.0.0 150 07/22/2024
7.0.0-beta3 159 07/22/2024
7.0.0-beta2 166 07/22/2024
7.0.0-beta1 145 07/22/2024
6.4.1 177 07/22/2024
6.4.1-beta1 190 07/22/2024
6.4.0 163 07/22/2024
6.4.0-rc4 190 07/22/2024
6.4.0-rc3 157 07/22/2024
6.4.0-rc2 172 07/22/2024
6.4.0-rc1 172 07/22/2024
6.4.0-beta9 200 07/22/2024
6.4.0-beta8 198 07/22/2024
6.4.0-beta7 161 07/22/2024
6.4.0-beta6 179 07/22/2024
6.4.0-beta5 177 07/22/2024
6.4.0-beta4 172 07/22/2024
6.4.0-beta3 169 07/22/2024
6.4.0-beta2 165 07/22/2024
6.4.0-beta10 183 07/22/2024
6.4.0-beta1 145 07/22/2024
6.3.4-alpha 169 07/22/2024
6.3.3-alpha 152 07/22/2024
6.2.1 160 07/22/2024
6.2.1-beta1 162 07/22/2024
6.2.0 154 07/22/2024
6.2.0-beta1 165 07/22/2024
6.1.0 165 07/22/2024
6.0.2 150 07/22/2024
6.0.1 163 07/22/2024
6.0.0 161 07/22/2024
5.6.2 162 07/22/2024
5.6.1 158 07/22/2024
5.5.0 172 07/22/2024
5.4.0 164 07/22/2024
5.3.0 166 07/21/2024
5.2.0 159 07/22/2024
5.1.0 168 07/22/2024
5.0.0.1 155 07/22/2024
4.0.0.1 163 07/22/2024
4.0.0 174 07/22/2024
3.4.6 149 07/22/2024
3.4.0 189 07/22/2024
3.3.1 180 07/22/2024
3.2.0 171 07/22/2024
3.1.0 166 07/22/2024
3.0.0.1 149 07/22/2024
3.0.0 181 07/22/2024
2.0.0 153 07/22/2024
1.3.0 165 07/22/2024