Skip to content

Releases: GraphBLAS/binsparse-reference-c

Release v0.5.0

18 Aug 21:20
a8c3ee3
Compare
Choose a tag to compare
Release v0.5.0 Pre-release
Pre-release

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.