Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 01:12
· 9 commits to main since this release

Added

  • Initial Crabalidator solution structure based on DynaBee.
  • Library, test, benchmark, sample, documentation, package, and CI scaffolding.
  • Stable NuGet package metadata, package icon, SourceLink, deterministic builds, symbols, and release workflow support.
  • Core validation model with validators, contexts, results, descriptors, diagnostics, and fluent rule configuration.
  • Public validation APIs through CrabValidator<T>, IValidator<T>, IAsyncValidator<T>, ICrabalidator, and ValidationResult.
  • Fluent RuleFor(...) rules for empty checks, length checks, comparisons, equality, and custom predicates.
  • Property-level When(...) and Unless(...) conditions.
  • Property cascade behavior through Cascade(CascadeMode.Stop).
  • Nested object validation through SetValidator(...).
  • Collection element validation through RuleForEach(...).
  • Async custom validation through MustAsync(...) with cancellation support.
  • Async nested validator execution.
  • Backend-neutral validation planning with rule order, failure metadata, diagnostics, and interpreted execution.
  • DynaBee sync generation backend with generated validator types, generated method bodies, compiled invokers, and registry caching.
  • DynaBee-generated hot paths for direct sync validation, typed property getters, typed rule checks, typed Must(...) delegates, conditions, nested validation, and collection validation.
  • Dependency injection registration through Microsoft.Extensions.DependencyInjection.
  • Validator discovery, compiled validator adapters, and the default Crabalidator runtime service.
  • Runtime diagnostics for registered validators and readable validation plan output through DescribePlan(...).
  • Basic console sample covering sync rules, conditions, nested validation, collection validation, async validation, and diagnostics.
  • BenchmarkDotNet scenarios for direct, interpreted, generated DI, nested, async, and delegate-heavy validation paths.
  • FluentValidation benchmark baselines for sync, nested, async, and delegate-heavy validation scenarios.

Optimized

  • Reduced context allocations in direct, DI, nested, and generated validation hot paths.
  • Inlined nested plan execution to avoid intermediate child ValidationResult allocations.
  • Avoided duplicate failure collection copies when plans produce invalid results.
  • Pre-sized validation failure collections from validation plan estimates.
  • Optimized generated invalid paths for common rule kinds and delegate predicates.

Notes

  • Crabalidator targets net8.0, net9.0, and net10.0.
  • DynaBee is an internal generation backend dependency and is not exposed through Crabalidator public APIs.
  • Validators that contain async rules must be executed with ValidateAsync(...).
  • NativeAOT/mobile-friendly generation is not part of this release.