ozzo-validation is a Go package that provides configurable and extensible data validation capabilities. It uses programming constructs to specify how data should be validated rather than relying on error-prone struct tags, which makes your code more flexible and less error prone. ozzo-validation has the following features:
- rule-based data validation that allows validating a data value with multiple rules.
- validation rules are declared via normal programming constructs instead of error-prone struct tags.
- can validate data of different types, e.g., structs, strings, byte slices, slices, maps, arrays.
- can validate custom data types as long as they implement the Validatable interface.
- support validating data types that implement the sql.Valuer interface (e.g. sql.NullString).
- support validating selective struct fields.
- customizable and well-formatted validation errors.
- provide a rich set of validation rules right out of box.
- extremely easy to create and use custom validation rules.