Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rsomics-igzip

Minimal Quadrant-② FFI wrapper over Intel ISA-L igzip for fast streaming gzip decompression.

Exposes a single safe public type: GzReader, which implements std::io::Read. All unsafe is contained within this crate. Every consumer (rsomics-seqio, rsomics-fastq-*) stays 100% safe Rust and keeps [lints] workspace = true.

Why this crate exists

Crate Problem
isal-rs Safe wrapper but hard-codes BUF_SIZE = 16 KiB, preventing the large-block read pattern that gives ISA-L its throughput advantage

The correct shape — 4 MiB compressed input / 8 MiB decompressed output blocks, mirroring fastp src/fastqreader.cpp readToBufIgzip with multi-member gzip support — requires calling isal_sys directly with caller-controlled buffer sizes.

Platform support

ISA-L's hand-written aarch64 assembly does not assemble under Apple's integrated assembler, so isal-sys is a Linux-only dependency. On non-Linux targets this crate still compiles but GzReader::new returns an Unsupported error; consumers (e.g. rsomics-seqio) select a pure-Rust decoder per target. The performance contract is enforced on Linux.

Dependency quadrant

Crate Quadrant Why
rsomics-igzip ② FFI build.rs compiles ISA-L C + NASM via cc; isal-sys is the raw -sys crate

Origin

Independent minimal Rust FFI wrapper over Intel ISA-L igzip via isal-sys.

No GPL source was used.

License

MIT OR Apache-2.0

About

Minimal Quadrant-② FFI wrapper over Intel ISA-L igzip for fast gzip decompression. Isolated unsafe surface; all consumers stay 100% safe.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages