Blosc2

Latest version: v3.2.1

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 14 of 18

2.0.0.beta5

========================================

* The prefilter functionality has been introduced and declared stable.
With that, you can callback arbitrary functions previous to any filter.
This can be useful for performing (parallel) computations on chunks.
For an example of use, see `tests/test_prefilter.c`.

* New blosc2_set_maskout() function to avoid decompressing blocks. This
can be handy when it is not needed to decompress all the blocks in a
chunk. This should be always called before blosc2_decompress_ctx() and
its effect is reset to the default (decompress all blocks) after that.

* New ALTIVEC optimizations for Power architecture. These include support
for both shuffle and bitshuffle filters. For details, see https://github.com/Blosc/c-blosc2/pull/98.
Thanks to Jerome Kieffer and ESRF for making this happen.

* New blosc2_frame_from_sframe() function for getting a `blosc2_frame`
out of an in-memory serialized frame.

* Zstd codec updated to 1.4.4.

2.0.0.beta.5

2.0.0beta.4

=========================================

* New pluggable threading backend. Instead of having Blosc use its own
thread pool, you can instead call
`blosc_set_threads_callback(threads_callback, callback_data)` to install
your own threading backend. This gives Blosc the possibility to use the
same threading mechanism as one you are using in the rest of your program
(e.g. OpenMP or Intel TBB), sharing the same threads, rather than starting
its own threads that compete with yours for the CPU cores. See PR 81.
Thanks to Steven G. Johnson.

* The endianness of the platform that is writing the data in chunks is stored
now in the headers of the chunks. This info is not used yet, but this
should allow a good hint for implementing format compatibility among
platforms with different endianness in other layers. See PR 84.

* Fixed a nasty bug that prevented frames to go more than 2 GB in size.

* Added a cache for on-disk offsets. This accelerates the reading of slices
from disk quite a lot (up to 50% with my benchmarks).

* Zstd codec upgraded from 1.4.0 to 1.4.3.

2.0.0beta.3

=========================================

* Quick release to fix that beta.2 was tagged on top of a branch, not master.

* The msgpack trailer now properly starts with `0x90 + 4` value, not plain
wrong `0x09 + 4`.

* Trailer version bumped to 1.

2.0.0beta.2

========================================

* A new `usermeta` chunk in `schunk` allows to store arbitrary meta-information
that is up to the user. If the `schunk` has an attached `frame`, the later
will be updated accordingly too. For more info, see PR 74 and docstrings of
new `blosc2_update_usermeta()` and `blosc2_get_usermeta()` functions.

* Metalayers must now be attached to super-chunks, not frames. The reason is
that frames are increasingly treated as a storage specifier (in-memory or
disk now, but can be other means in the future), whereas the actual API for
I/O (including metainfo) goes into super-chunks. See PR 75.

* New frame format documented in
[README_FRAME_FORMAT.rst](README_FRAME_FORMAT.rst). Remember that the frame
format is not written in stone yet, so some changes may be introduced before
getting out of beta.

* BREAKING CHANGE: the format for frames has changed and
BLOSC2_VERSION_FRAME_FORMAT is now set to 1. There is no attempt to support
previous formats, but there will probably be backward compatibility support
starting from version 1 on.

* BREAKING CHANGE: the next APIs have been renamed:
+ blosc2_frame_has_metalayer -> blosc2_has_metalayer
+ blosc2_frame_add_metalayer -> blosc2_add_metalayer
+ blosc2_frame_update_metalayer -> blosc2_update_metalayer
+ blosc2_frame_metalayer -> blosc2_get_metalayer

Although the API was declared stable in beta.1, the fact that metalayers are
attached now to super-chunks directly, made this change completely necessary.

* BREAKING CHANGE: the next symbols have been renamed:
+ BLOSC_CPARAMS_DEFAULTS -> BLOSC2_CPARAMS_DEFAULTS
+ BLOSC_DPARAMS_DEFAULTS -> BLOSC2_DPARAMS_DEFAULTS

2.0.0beta.1

====================================

* The library is called now `blosc2` and not `blosc` anymore. This is necessary
so as to prevent collisions with existing `blosc` deployments.

* The `make install` now install all the necessary requirements out-of-the-box.

* Use Intel IPP's LZ4Safe when compressing/decompressing: this provides better
compression ratios and speed (in some cases). It is activated automatically
if Intel IPP is found in the system, but you can always disable it with:
`cmake -DDEACTIVATE_IPP=ON`

* BREAKING CHANGE: the next API have been made private:
+ blosc2_frame_append_chunk -> frame_append_chunk
+ blosc2_frame_get_chunk -> frame_get_chunk
+ blosc2_frame_decompress_chunk -> frame_decompress_chunk

Now the appending and retrieval of data in frames should always be made via the frame-backed super-chunk API. The idea is to deduplicate the I/O primitives as much as possible, and the super-chunks are the logical way for doing this.

* BREAKING CHANGE: the next APIs have been renamed:
+ blosc2_get_cparams - > blosc2_schunk_get_cparams
+ blosc2_get_dparams - > blosc2_schunk_get_dparams

* Internal BloscLZ sources bumped to 2.0.0.

* Internal LZ4 sources bumped to 1.9.1.

* Internal Zstd sources bumped to 1.4.0.

Page 14 of 18

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.