Skip to content

Releases: mwlon/pcodec

v0.4.1

23 Nov 17:51
Compare
Choose a tag to compare
  • Improvements
    • Improved compression speed 10-20% by simplifying histogram partitioning, learning from Rust 1.81's new sorting algorithms.
    • Made compression avoid offset bits when it causes little harm to compression ratio, improving compression and decompression speed in specific cases.
  • CLI
    • Added delta=Lookback chunk config support.
    • Added Parquet 16-bit data type support in benchmarks.

Python v0.3.2

23 Nov 17:52
Compare
Choose a tag to compare

Upgraded Rust implementation to 0.4.1.

v0.4.0

10 Nov 18:59
f48e7b8
Compare
Choose a tag to compare
  • New format version (3)
  • API breaking changes
    • All metadata types (e.g. ChunkMeta) now live in the pco::metadata:: module.
    • Metadata and ChunkCompressor types are no longer generic to latent type. Instead they contain dynamically-typed values, leveraging the dtype_dispatch crate.
    • Renamed NumberLike => Number.
    • Delta encoding is now configured via DeltaSpec enum of an Option<usize>, and similarly ChunkMeta contains a DeltaEncoding enum.
  • API additions
    • Added simple_compress_into function.
    • Added a Lookback delta encoding that improves compression ratio on some types of data.
  • Improvements
    • Improved bin optimization speed on Windows slightly.
    • Improved FloatQuant auto mode heuristics, improving the size/speed tradeoff.
    • Reduced binary size via fewer unnecessary specializations.
  • Degradations
    • Automatic detection of the new Lookback delta encoding is fairly slow, often increasing compression time ~10%. We're likely to try ameliorating this in future releases.

Python v0.3.1

10 Nov 19:02
f48e7b8
Compare
Choose a tag to compare
  • Added DeltaSpec.try_lookback() configuration.
  • Upgraded Rust implementation to 0.4.0.

Python v0.3.0

30 Oct 03:45
Compare
Choose a tag to compare
  • Published Python 3.13 wheels for the first time (assuming this works).
  • Replaced delta_encoding_order optional int configuration with delta_spec class.

v0.3.1

06 Jul 15:09
Compare
Choose a tag to compare

Reduced minimum version requirement for half crate.

v0.3.0

03 Jul 03:13
Compare
Choose a tag to compare
  • New format version (2)
  • API breaking changes
    • Replaced FloatMultSpec and IntMultSpec with mode_spec: ModeSpec in ChunkConfig.
    • Removed auto_delta_encoding_order function.
  • API additions
    • Added support for 16-bit data types.
    • Added LatentDescriber API, accessible by NumberLike::get_latent_describer.
  • Improvements
    • Added FloatQuant mode and automatic detection for it, improving compression ratio on quantized float data.
    • Increased compression speed for high compression levels slightly.

Python v0.2.0

03 Jul 03:26
Compare
Choose a tag to compare
  • Added support for 16-bit types.
  • Replaced separate int_mult_spec and float_mult_spec configs withmode_spec: ModeSpec.
  • Upgraded Rust implementation from 0.2.5 to 0.3.0.

Python v0.1.1

08 May 00:48
Compare
Choose a tag to compare

Upgraded Rust implementation from 0.1.3 to 0.2.5.

v0.2.5

06 May 13:25
Compare
Choose a tag to compare

Fixed a bug in v0.2.4 that caused a panic during histogram computation under certain conditions.