Repository navigation
Native rules
This release continues the performance work from 2.0. We now follow a similar pattern to other protovalidate implementations, executing standard rules natively without CEL. While definitely not the multiple orders of magnitude we saw in 2.0, we see several times faster performance on many of our benchmarks, with successful validations now often being very similar in performance to pydantic.
Python 3.15
This release adds support for Python 3.15, including publishing free-threaded stable ABI (abi3t) wheels so that future unreleased versions of free-threaded Python will work out of the box. With this, we also drop support for the EoL Python 3.10.
Informative error message
Until now, the exception raised when there is a validation error contained only the name of the message type being validated, and no information about the failure at all. We have changed this so now a summary of violations is included in the error message itself - it will print the first violation message itself, and if there are more than one, also the count of remaining violations. We hope this makes it easier to understand log messages when using protovalidate.
🛠️ Bug fixes
- Fix type annotation for Message for strict checkers by @anuraaga in #523
- Support protobuf-py 0.7.0 by @mkanat in #569
📈 Enhancements
- Migrate from protovalidate-cc to a new rust runtime by @anuraaga in #540
- Add information about violations to error message by @anuraaga in #554
New Contributors
Full Changelog: v2.0.0...v2.1.0