Releases: mwlon/pcodec
Releases · mwlon/pcodec
v0.4.1
- 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.
- Added
Python v0.3.2
Upgraded Rust implementation to 0.4.1.
v0.4.0
- New format version (3)
- API breaking changes
- All metadata types (e.g.
ChunkMeta
) now live in thepco::metadata::
module. - Metadata and
ChunkCompressor
types are no longer generic to latent type. Instead they contain dynamically-typed values, leveraging thedtype_dispatch
crate. - Renamed
NumberLike => Number
. - Delta encoding is now configured via
DeltaSpec
enum of anOption<usize>
, and similarlyChunkMeta
contains aDeltaEncoding
enum.
- All metadata types (e.g.
- API additions
- Added
simple_compress_into
function. - Added a
Lookback
delta encoding that improves compression ratio on some types of data.
- Added
- 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.
- Automatic detection of the new
Python v0.3.1
- Added
DeltaSpec.try_lookback()
configuration. - Upgraded Rust implementation to 0.4.0.
Python v0.3.0
- 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
v0.3.0
- New format version (2)
- API breaking changes
- Replaced
FloatMultSpec
andIntMultSpec
withmode_spec: ModeSpec
inChunkConfig
. - Removed
auto_delta_encoding_order
function.
- Replaced
- API additions
- Added support for 16-bit data types.
- Added
LatentDescriber
API, accessible byNumberLike::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.
- Added
Python v0.2.0
- Added support for 16-bit types.
- Replaced separate
int_mult_spec
andfloat_mult_spec
configs withmode_spec: ModeSpec
. - Upgraded Rust implementation from 0.2.5 to 0.3.0.
Python v0.1.1
Upgraded Rust implementation from 0.1.3 to 0.2.5.