Releases: KillingSpark/zstd-rs
We are std(-dependency)
https://github.com/workingjubilee put the work in to make this crate usable as a dependency in the standard library in #67
Bugfix release
https://github.com/michaelkirk noticed and fixed a bug related to the drain_to
family of functions where a write of 0 bytes means that the target is temporarily not able to receive more bytes which caused an endless loop before the fix
Optimizations, Documentation and slight API changes
- Few slight performance optimizations
- Big documentation contribution
StreamingDecoder
now has API to get to the containedimpl Read
Send + Sync for FrameDecoder and optional checksum calculation
- The FrameDecoder is now Send + Sync (RingBuffer impls these traits now)
- Hashing content and checking the result against the frame header is now optional
Even better no_std
Switching from thiserror to derive_more allows for no_std builds on stable rust
No-std support and better dict API
This release features no-std support with big thanks to @antangelo!
Also the API for dictionaries has been revised, which required some breaking changes in that department
Support skippable frames and improve zstd binary
This support features support for
- Skippable frames, which where previously regarded as a generally malformed frame
- Decoding multiple frames in one file with the provided zstd binary (thanks @phord)
Optimizations and way better errors
- In a big effort, @paolobarbolini and me improved the performance of decoding sequences. This also lead to a cool contribution of him to the standard lib making vecdequeue for copyable types way more performant. #18
- I improved the reversed bitreader performance by a lot after reading the excellent blogposts here and here
- @rrbutani Made the effort of converting the not very helpful plain string errors with meaningful error enums, which apparently can help with binary sizes, but is also just a very big usability improvement of this library #28
Remove last unsafe block
With rust 1.53 came Vec::extend_from_within which allows to replace the last unsafe block in this codebase. It requires breaking compatibility with older rust verions though.
If you require an older rustc version you can still use v0.2.2. It is functionally equivalent but contains that last unsafe block.
This release just fixes some minor clippy lints that came up.
Remove last unsafe block
With rust 1.53 came Vec::extend_from_within which allows to replace the last unsafe block in this codebase. It requires breaking compatibility with older rust verions though.
If you require an older rustc version you can still use v0.2.2. It is functionally equivalent but contains that last unsafe block.