Skip to content

Releases: KillingSpark/zstd-rs

Compression support

23 Dec 16:09
Compare
Choose a tag to compare

Compression support

This release adds initial support for compressing data into the zstd format. This enables interoperability with workflows that require payloads to be encoded with zstd all in pure rust, no C dependencies needed.

API changes

The public API of the crate has been reorganized and cleaned up. Since there is now also encoding support the root couldn't really be used for structures used to decode data.

Errors

Decoding errors now live in their own module ruzstd::decoding::errors. This enabled hiding a lot of the internal modules and by that decluttering the docs.

Decoders

The FrameDecoder and StreamingDecoder are now found in ruzstd::decoding instead of the root of the namespace. This is because there is now the new ruzstd::encoding module which contains the FrameCompressor as well as the compress/compress_to_vec convenience functions.

Security update, unsoundness in RingBuffer

28 Nov 10:27
Compare
Choose a tag to compare

Issue #75 reported an usoundness bug in the RingBuffer that could result in unintented heap reads. This has been fixed in #76 by @paolobarbolini

Versions 0.7.0 up to and including 0.7.2 are affected

Also include #70 that adds convenience functions to decode all zstd frames in a given slice

We are std(-dependency)

12 Sep 16:29
Compare
Choose a tag to compare

Contains unsoundness fixed in 0.7.3

https://github.com/workingjubilee put the work in to make this crate usable as a dependency in the standard library in #67

Bugfix release

21 Aug 19:03
Compare
Choose a tag to compare

Contains unsoundness fixed in 0.7.3

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

30 May 21:08
Compare
Choose a tag to compare

Contains unsoundness fixed in 0.7.3

  • Few slight performance optimizations
  • Big documentation contribution
  • StreamingDecoder now has API to get to the contained impl Read

Send + Sync for FrameDecoder and optional checksum calculation

18 Feb 16:32
Compare
Choose a tag to compare
  • 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

25 Oct 15:28
e620d2a
Compare
Choose a tag to compare

Switching from thiserror to derive_more allows for no_std builds on stable rust

No-std support and better dict API

18 May 17:45
Compare
Choose a tag to compare

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

17 Mar 15:25
Compare
Choose a tag to compare

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

04 Jul 19:34
Compare
Choose a tag to compare
  • 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