Skip to content

mu-dawood/EasyValidate

Buy Me A Coffee
If you find EasyValidate helpful, consider buying me a coffee to support development!

EasyValidate

A modern, type-safe .NET validation library and source generator with Roslyn analyzers and code fixers.

Overview

EasyValidate enables powerful, composable, and type-safe validation using attributes. It generates efficient validation code at compile time and provides analyzers for compile-time feedback.

Quick Start

public class User
{
    [Required]
    [StringLength(50)]
    public string Name { get; set; }
    
    [Required]
    [Email]
    public string Email { get; set; }
    
    [Range(18, 120)]
    public int Age { get; set; }
}

// Generated validation method
var result = user.Validate();
if (!result.IsValid)
{
    foreach (var error in result.Errors)
    {
        Console.WriteLine(error.Message);
    }
}

Installation

Install the NuGet package:

dotnet add package EasyValidate

Documentation

📖 Full documentation: https://easy-validate.netlify.app

  • Getting started
  • Complete API reference
  • Attribute documentation
  • Migration guides
  • Examples and tutorials

Project Structure

  • EasyValidate.Core/ – Core validation attributes and logic (type-safe, scalable)
  • EasyValidate/ – Source generator and NuGet package entry point
  • EasyValidate.Analyzers/ – Roslyn analyzers for compile-time validation
  • EasyValidate.Fixers/ – Roslyn code fixers for quick fixes
  • EasyValidate.Test/ – Unit tests
  • ConsoleTest/ – Console app for manual testing
  • docs/ – Additional docs and assets

License

This project is licensed under the GPL-3.0-only License – see the LICENSE file for details.

Support

About

Build robust applications with attribute-based validation, source generation, async support, and seamless dependency injection. Zero reflection, maximum performance.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages