Skip to content

Faster bgzf compression/decompression with libdeflate? #124

@chrchang

Description

@chrchang

If the latest htslib is built on a system with libdeflate (https://github.com/ebiggers/libdeflate), .bam and .vcf.gz compression and decompression speed is roughly doubled over stock zlib, and substantially better than what you get with Intel and Cloudflare zlib as well. I've put together a simple cgo wrapper for libdeflate (see https://godoc.org/github.com/grailbio/base/compress/libdeflate), and confirmed that modifying hts/bgzf to use its functions over compress/gzip (or klauspost/compress/gzip) produces a similar speedup.

The catch is that the libdeflate package currently requires cgo, and it would take an unreasonable amount of work (from my perspective, anyway) to change this. I see that there's currently no cgo dependency anywhere in biogo, though it appears to have existed in the past. Does this disqualify the proposal, or is there a way to introduce a cgo dependency that you'd consider acceptable?

If the latter is true, I'll go ahead and create a pull request of the appropriate form.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions