Repository navigation
Releases: noamteyssier/binseq
Releases · noamteyssier/binseq
Release list
v0.10.0
[0.10.0]
- Large cleanup of internal and public API.
- Runtime dependencies removed (
byteorder,num_cpus,auto_impl, andmemchr). - Deprecated items removed from the public API.
- Documentation overhaul: docs now center on CBQ as the recommended variant (VBQ is documented as superseded), examples use CBQ throughout, and docstrings are heavily simplified across the crate.
Removed
bq::StreamWriter/bq::StreamWriterBuilder- pure delegating wrappers; compose
bq::WriterBuilderwithstd::io::BufWriterinstead (see thenetwork_streamingexample).
- pure delegating wrappers; compose
- Deprecated
write_record/write_paired_recordon thebqandvbqwriters- use
push(SequencingRecord).
- use
bq::Encoderfrom the public APIbqandvbqnow share one internal encoder;- sequence-length validation happens in
bq::Writer::push.
vbq::BlockIndex::from_vbq- indexes are embedded in VBQ files - removing this holdover from way back when;
- use
MmapReader::load_index.
- Redundant header constructors
bq::FileHeader::{new, new_extended, set_bitsize}andvbq::FileHeader::{new, with_capacity, set_bitsize};- use the
FileHeaderBuilders.
- Never-constructed error variants
- the five
WriteErrorflag-mismatch variants andCbqError::MissingSequenceOnSequencingRecord; BuilderErrorfolds intoHeaderError::MissingSequenceLengthandFastxEncodingErrorintoWriteError.
- the five
&R/&mut Rimpls ofBinseqRecord- the
auto_impldependency is dropped and nothing used the reference impls; - pass records by value (they are already references anyways).
- the
- Dead accessors throughout (
RefRecord::{config, set_id},cbqwriterusage/bytes_written, and similar zero-caller items), plus the redundantstreamingandwriteexamples.
Changed
SequencingRecordfields are now public and the getters are removed- FASTX encoding now drains only completed blocks per batch and does a final drain per thread
- CBQ blocks stay full across batches for better compression and less time under the global writer lock.
- Dependencies:
byteorderreplaced withstdlittle-endian conversions (byte-identical output),num_cpusreplaced withstd::thread::available_parallelism,auto_impldropped, andmemchrmoved to dev-dependencies. - The
paraseqfeature is no longer enabled by default, reducing compile times when FASTX encoding is not needed. Enable it withfeatures = ["paraseq"]to useencode_fastx(which remains visible on docs.rs with a feature banner). anyhowis now actually an optional dependency (still enabled by default; opt out withdefault-features = false):- the CBQ Elias-Fano codec is handled directly without the auto-derive from thiserror
- fixes the optional feature which actually never compiled when disabled.
parasequpdated0.5->0.6(breaking for users of theparaseqfeature andencode_fastx).- Dependencies updated:
bitnuc0.5.7,rand0.10,sucds0.9,zstd0.14, andthiserror2.0.21. - Internal simplification:
- one shared
bq/vbqencoder BatchRecordwrapsRefRecordcbqSpanreplaced byRange<usize>- unreachable
pubitems demoted topub(crate).
- one shared
Fixed
- The
errortest module was missing#[cfg(test)], so a test-only enum compiled into release builds. cbq::Index::average_block_sizereports0.0instead ofNaNfor files with fewer than two blocks.encode_fastxwith single non-paired input no longer records second read's length asxlen- made fixed-length BQ output look paired and fail on interleaved encoding.
- The extended length now only probes when builder is configured paired.