Blosc/c-blosc logo

Blosc/c-blosc

Free

A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`.

FreeFree tier
Type
Open Source
Company
Blosc Development Team

About Blosc/c-blosc

Blosc is a high-performance, lossless meta-compressor library specifically designed for binary data. It employs a blocking technique that divides datasets into blocks small enough to fit into CPU caches, enabling compression and decompression to be performed faster than a direct memory copy (memcpy). Blosc leverages SIMD instructions (SSE2, AVX2) and multi-threaded CPU capabilities to accelerate throughput. It supports multiple codec backends including BloscLZ, LZ4, LZ4HC, Snappy, Zlib, and Zstandard, and includes optimized shuffle and bitshuffle filters for improved compression ratios. The library is BSD-licensed and is distributed by the Blosc Development Team. Note that this is an older version (c-blosc) in maintenance mode; users are directed to the more feature-rich C-Blosc2 for ongoing development.

Key Features

Blocking technique to fit data in CPU caches for faster compression/decompression
Leverages SIMD instructions (SSE2, AVX2) for vectorized operations
Multi-threaded compression and decompression
Meta-compressor supporting BloscLZ, LZ4, LZ4HC, Snappy, Zlib, and Zstandard codecs
Optimized shuffle and bitshuffle filters to improve compression ratios
Designed to be faster than a direct memory copy (memcpy) for memory-bound computations
BSD open-source license

Pros & Cons

Pros
  • Achieves compression/decompression speeds faster than memcpy in many scenarios
  • Highly optimized for modern CPUs with SIMD and multi-threading support
  • Flexible codec selection via meta-compressor architecture
  • Lossless compression preserves data integrity
  • BSD-licensed open source with an active community
Cons
  • Library is in maintenance mode and will not receive new features
  • Users are encouraged to migrate to the more modern C-Blosc2 for active development
  • Only supports lossless compression (no lossy options)
  • May require tuning of block sizes for optimal performance on different architectures

Best For

Accelerating memory-bound computations in data processing pipelinesReducing size of large binary datasets on-disk or in-memoryTransmitting data to processor cache faster than traditional memcpyScientific computing and big data applications requiring high-speed compression