slow5lib 0.1.0

Rust re-implementation of slow5lib: read and write SLOW5/BLOW5 nanopore sequencing files
Documentation
# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] - 2026-07-09

Initial release.

### Added

- `Slow5Reader` -- sequential reading of SLOW5 (text) and BLOW5 (binary) files.
- `Slow5IndexedReader` -- random access by `read_id` via `.slow5.idx` / `.blow5.idx`, backed by `read_at` (no mmap). `Send + Sync`; safe for concurrent `get()` calls.
- `Slow5Writer` -- write SLOW5 and BLOW5 files with any supported record/signal compression combination.
- `Slow5Writer::write_all_par` (`rayon` feature) -- parallel encode+compress across a batch, then sequential write.
- `ParallelSlow5Writer` / `Slow5WriteHandle` (`rayon` feature) -- background I/O thread with a bounded channel; worker threads compress concurrently while writes stay sequential.
- `RawRecord` / `Record` split -- I/O and decompression are separate steps so decompression can be parallelized with rayon (`par_bridge()`, `par_records()`) while disk reads stay sequential.
- Record compression: None, Zlib, Zstd (level 1, matching the C library default).
- Signal compression: None, SVB-ZD (StreamVByte + delta + zigzag, via the `svb` crate, SIMD-accelerated), ExZd (quantize-trailing-shift + zigzag-delta + patched exceptions, via `svb`'s `encode_exzd`/`ExzdDecoder`).
- Auxiliary field support: read, write, encode, decode for both SLOW5 text and BLOW5 binary.
- Index building with early-stop streaming decompression (extracts `read_id` without decoding signal).
- Criterion benchmarks and `src/bin/harness.rs` correctness/performance harness against `slow5tools`.
- MDBook documentation site, deployed to GitHub Pages.

### Fixed

- `src/aux.rs` renamed to `src/aux_field.rs` (public `slow5lib::aux` module path unchanged, via `#[path]`) -- `AUX` is a reserved Windows device name regardless of extension, so the crate could not be checked out or extracted from a `.crate` tarball on native Windows.

### Known limitations

- Windows is not covered by CI; the indexed reader relies on Unix `read_at`.
- Parity testing covers one author-supplied BLOW5 dataset; not yet validated across multiple organisms, platforms, or library preps.

[Unreleased]: https://github.com/Psy-Fer/slow5lib-rs/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/Psy-Fer/slow5lib-rs/releases/tag/v0.1.0