Skip to main content

Vali-Validation

Lightweight fluent validation library for .NET 7, 8, and 9 — zero external dependencies.

Architecture Overview

loading...

Package Ecosystem

loading...
PackagePurpose
Vali-ValidationCore library: validators, rules, ValidationResult, ValidationException
Vali-Validation.AspNetCoreMiddleware, endpoint filters, action filters
Vali-Validation.MediatRIPipelineBehavior for MediatR (throws ValidationException)
Vali-Validation.ValiMediatorIPipelineBehavior for Vali-Mediator (returns Result<T>.Fail)

Validation Flow

loading...

Quick Example

public class CreateProductValidator : AbstractValidator<CreateProductRequest>
{
public CreateProductValidator()
{
RuleFor(x => x.Name)
.NotEmpty().WithMessage("Name is required.")
.MinimumLength(3);

RuleFor(x => x.Price)
.GreaterThan(0m).WithMessage("Price must be positive.");
}
}

// DI registration
builder.Services.AddValidationsFromAssembly(typeof(Program).Assembly);

// Usage
var result = await validator.ValidateAsync(request);
if (!result.IsValid)
return Results.ValidationProblem(result.Errors.ToDictionary(k => k.Key, v => v.Value.ToArray()));

Get Started