Principles
Every LIVR validator meets the following requirements:
- Rules are declarative and language independent.
- Any number of rules for each field.
- The validator returns errors for all fields together.
- Fields that do not have validation rules are excluded from the output.
- Complex hierarchical structures can be validated.
- Validation is easy to describe and to understand.
- Errors are understandable codes (neither error messages nor numeric codes).
- It is easy to implement your own rules (usually you will have several in every project).
- Rules can change the output, for example
trimandnested_object. - Multipurpose: user input validation, configs validation, contracts programming, etc.
- Unicode support.