Skip to content

v2.1.0

Latest

Choose a tag to compare

@anuraaga anuraaga released this 23 Oct 03:41
· 5 commits to main since this release
1026204

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

📈 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