Skip to content

Releases: KillingSpark/zstd-rs

Change to cargo workspace, improve CLI and make FrameCompressor nameable

03 Nov 09:20

Choose a tag to compare

@zleyyij improved the CLI a ton and switched this repo to a cargo workspace so that the dependencies for the binary and the library can be separated.

Also, the MatchGeneratorDriver is now exported so users are able to name it as the M in FrameCompressor<R, W, M>

Checksum on compressor, compressor ratio improvements, and small decoder bugfix

03 May 14:04

Choose a tag to compare

  • Checksum is now added in compressed frames if the hash feature is enabled
  • Some compression ratio improvements
  • The decoder had a small bug where inefficient encodings of zero sequences in a block where wrongly considered invalid

Compression support

23 Dec 16:09

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

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

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

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

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

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

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

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