* New bytedelta filter. We have blogged about this: https://www.blosc.org/posts/bytedelta-enhance-compression-toolset/. See the examples/ndarray/bytedelta_filter.py for a sample script. We also have a short video on how bytedelta works: https://www.youtube.com/watch?v=5OXs7w2x6nw
* The compression defaults are changed to get a better balance between compression ratio, compression speed and decompression speed. The new defaults are:
These changes are based on the experiments performed in the blog post above.
* `dtype.itemsize` will have preference over typesize in cparams (as it was documented).
* `blosc2.compressor_list(plugins=False)` do not list codec plugins by default now. If you want to list plugins too, you need to pass `plugins=True`.
* Internal C-Blosc2 updated to latest version (2.8.0).
2.1.1
* New `NDArray` class for handling multidimensional arrays using compression. It includes: - Data type handling (fully compatible with NumPy) - Double partitioning
See examples at: https://github.com/Blosc/python-blosc2/tree/main/examples/ndarray NDarray docs at: https://www.blosc.org/python-blosc2/reference/ndarray_api.html Explanatory video on why double partitioning: https://youtu.be/LvP9zxMGBng Also, see our blog on C-Blosc2 NDim counterpart: https://www.blosc.org/posts/blosc2-ndim-intro/
* Internal C-Blosc2 bumped to latest 2.7.1 version.
2.1.0
===========================
* Support of the [ZFP lossy codec](https://zfp.readthedocs.io/) as a plugin. This is mainly meant for compressing multidimensional arrays of floating point data, so it is better used in combination with [Caterva](https://github.com/Blosc/caterva). More info at our blog: https://www.blosc.org/posts/support-lossy-zfp/. Thanks to Oscar Guiñon and Francesc Alted. We are grateful to NumFOCUS for providing a grant for doing this work.
* Massive cleanup of warnings. Thanks to Marta Iborra.
* Fixed some bugs in test updates and insertions in 64-bit super chunks. Thanks to Francesc Alted.
* Fixed the build on FreeBSD/powerpc64le. Thanks to pkubaj.
* Updated internal zstd sources to 1.5.2.
* Updated internal zlib-ng to 2.0.6.
2.0.4
===========================
* Restored support for type size that is not a divisor of a buffer size for more info. See 356.
* Implemented a `blosc2_rename_urlpath`, a portable function to rename a file or a full directory. See 355.
* Several improvements for packaging. See 354, 357, 359.
* Fixed a bug in BloscLZ codec (bumped to 2.5.1).
2.0.3
===========================
* Improved BloscLZ codec (bumped to 2.5.0) for achieving better compression ratios on data with high entropy. Although in general LZ4 still does a better job in this scenario, *BloscLZ* can sometimes achieve better compression ratios.
* Added `blosc2_vlmeta_delete()` for removing vlmeta data. Thanks to Marta Iborra.
* Update pkg-config file to support blosc2. Fixes 236. Thanks to Håvard Flaget Aasen.
* Build system: Change hard coded library path with `CMAKE_INSTALL_LIBDIR` CMake variable. Thanks to Håvard Flaget Aasen.
2.0.2
===========================
* Fixed data chunk memory leaks in frame (see 335).
* Fixed blosc2_stdio_open never returns NULL if it cannot open file.
* Standarized places for headers in blosc/ and include/ dirs.
* `nthreads` is int16_t everywhere in the API. Fixes 331.
* Add blosc2_remove_urlpath function (see 330).
* Fixed a bug when a lazy_chunk was created from a small, memcpyed chunk. (see 329).