Releases: GraphBLAS/binsparse-reference-c
Release v0.5.0
Binsparse v0.5.0 Release Notes
Overview
This is the first stable pre-release of the Binsparse C reference implementation - a cross-platform library for reading and writing sparse matrices and tensors using the Binsparse binary sparse format specification.
This release provides support for both the traditional, pre-defined formats (CSR, COO, etc.) and the hierarchical, arbitrary-dimensioned sparse tensor format. In the near future, we will be releasing v1.0, which will make breaking changes to the API to better support proper error handling.
✨ Key Features
Core Functionality
- Matrix I/O: Complete read/write support for sparse matrices with HDF5 backend
- Tensor Support: Full tensor operations with hierarchical sparse structures
- Matrix Market Integration: Seamless conversion between MTX and Binsparse formats
- Format Conversion: Convert between COO, CSR, CSC, and dense matrix representations
Data Type Support
- Numeric Types: All integer widths (8/16/32/64-bit), float32/64, complex numbers
- Matrix Structures: General, symmetric, hermitian, skew-symmetric with upper/lower variants
- Memory Management: Custom allocators with shared memory support for parallel operations
Performance Features
- Parallel I/O: Multi-threaded reading for large datasets (C11+ required)
- Compression: Built-in HDF5 compression support
- Zero-copy Operations: Efficient memory handling for large matrices
Developer Tools
- Examples: Complete set of usage examples in C and C++
- Utilities:
bsp-ls
for inspecting file contents, format converters - CMake Integration: Modern CMake with automatic dependency management
🔧 Technical Specifications
- Standards: C11/C++20 compatibility
- Dependencies: HDF5, cJSON (auto-downloaded)
- Platforms: Cross-platform (Linux, macOS, Windows)
- License: BSD-3-Clause
⚠️ Important Notice
Breaking changes are planned for v1.0 to introduce comprehensive error handling throughout the API. Current functions using assertions will be replaced with proper error return codes for production use.
🚀 Getting Started
cmake -B build && cmake --build build
./build/examples/simple_matrix_read example.bsp.hdf5
Full documentation and examples available in the repository.