Skip to content

mu-dawood/EasyValidate

Repository files navigation

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

14 stars

Watchers

0 watching

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages