Skip to content

Installation

Prerequisites

  • Rust 1.95 or later (the workspace MSRV)
  • Cargo (comes with Rust)

Building the CLI

git clone https://github.com/rnabioco/fqxv.git
cd fqxv
cargo build --release

The binary is at target/release/fqxv. Copy it onto your PATH:

cp target/release/fqxv ~/.local/bin/

Verify:

fqxv --version
fqxv --help

Using the crates

fqxv is a Cargo workspace of one-crate-per-algorithm codecs plus the fqxv container library. Depend on whichever layer you need:

[dependencies]
# the whole archiver (container + all codecs)
fqxv = { git = "https://github.com/rnabioco/fqxv.git" }

# or an individual codec
fqxv-rans     = { git = "https://github.com/rnabioco/fqxv.git" }  # rANS Nx16
fqxv-range    = { git = "https://github.com/rnabioco/fqxv.git" }  # range coder
fqxv-fqzcomp  = { git = "https://github.com/rnabioco/fqxv.git" }  # quality model
fqxv-seq      = { git = "https://github.com/rnabioco/fqxv.git" }  # sequence model
fqxv-tokenizer= { git = "https://github.com/rnabioco/fqxv.git" }  # read-name tokenizer
fqxv-reorder  = { git = "https://github.com/rnabioco/fqxv.git" }  # read clustering
fqxv-bytes    = { git = "https://github.com/rnabioco/fqxv.git" }  # shared byte primitives

(fqxv-bytes is a leaf crate of the LEB128/zig-zag primitives the codec crates share; the codecs pull it in transitively, so you rarely depend on it directly.)

Every crate is dual-licensed MIT OR Apache-2.0.

Python

A read-only Python package reads .fqxv archives directly — see the Python API:

uv pip install fqxv

Development

cargo test --workspace          # unit + property tests
cargo test --doc --workspace    # doctests
cargo clippy --workspace --all-targets
cargo fmt --all

Benchmarks (against gzip / zstd / xz / fqz_comp / fqzcomp5 / SPRING) live under bench/ and use pixi; see the repository bench/README.md.