We are excited to announce the release of version 1.0.0 of our library! In this update, we have introduced significant changes and improvements. Please take a moment to review the following release notes.
Enhancements:
* **Improved validation mechanism:** We have replaced the use of `jsonschema` for data validation with custom validators. Previously, data had to be converted into Rust structures for validation, but now validation is performed directly on Python objects. This change has resulted in a substantial performance boost for the `Serializer.load` method, [improving its speed by 25% to 350%](https://github.com/ermakov-oleg/serpyco-rs/pull/104#issuecomment-1768784012).
Breaking Changes:
* **Removal of `pass_through_bytes` argument:** The `pass_through_bytes` argument in the `Serializer` has been removed. Bytes are now handled in the same way as other data types.
* **Elimination of `validate` parameter:** The `validate` parameter in the `Serializer.load` method has been removed, as validation is now always enforced.
* **Deletion of `Serializer.load_json` method:** The `Serializer.load_json` method has been removed. We recommend using `orjson` for JSON deserialization.
* **Removal of `schema_path` attribute:** The `schema_path` attribute has been removed from `ErrorItem`.
* **Change in validation behavior:** Validation will no longer return all errors encountered but only the first encountered error.
* **Correction of typo:** An error in the class name `metadata.FieldFormat` has been fixed.
**Full Changelog**: https://github.com/ermakov-oleg/serpyco-rs/compare/v0.15.6...v1.0.0