Files
clawhdf5/crates/clawhdf5
osobhandClaude Opus 5.5 6a4707d791 format: add the Storage trait; make the error enums non-exhaustive
Range-read milestone M1, first step (docs/design/range-reads.md §3(a)):
a synchronous, no_std read interface with u64 offsets, read_at returning
Cow<[u8]>, read_ranges, len and an as_contiguous fast path. Implemented
for [u8], Vec<u8>, &T, Box<T> and Arc<T>; slices serve borrowed bytes.
read_exact_at reproduces the parsers' UnexpectedEof bounds error exactly,
so converted modules keep their error values.

FormatError gains Storage(String) and ContiguousStorageRequired; it and
the facade Error are now #[non_exhaustive] (breaking for exhaustive
matches, noted in the changelog; the Python bindings' match gets a
wildcard arm).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-26 12:44:36 -05:00
..

clawhdf5

crates.io docs.rs

Pure-Rust HDF5 reader/writer — no C dependencies.

Features

  • Read and write HDF5 files entirely in Rust
  • Memory-mapped I/O for large files (mmap feature, enabled by default)
  • Parallel chunk reads via Rayon (parallel feature)
  • Lazy dataset access for minimal memory usage
  • h5py-compatible file output

Usage

use clawhdf5::File;

let file = File::open("data.h5").unwrap();
let dataset = file.dataset("/group/data").unwrap();
let values: Vec<f64> = dataset.read_1d().unwrap();

License

MIT