Skip to main content

fqxv (Python)

Read-only Python bindings for fqxv, a Rust toolkit for lossless FASTQ archiving.

uv pip install fqxv

The wheels are abi3 (one per platform, CPython >= 3.9) and carry the native codecs, so there is no Rust toolchain to install.

import fqxv

# Stream records (works on every layout, including reordered archives)
for rec in fqxv.open("reads.fqxv"):
    print(rec.name, rec.sequence, rec.quality)  # all bytes

# In-memory input works too
data = open("reads.fqxv", "rb").read()
n = sum(1 for _ in fqxv.open(data))

# Decode only some streams — deselected fields come back as b"" and their coded
# streams are skipped, never entropy-decoded (sequence-only measured ~12x faster
# on ONT long-read archives, ~1.3-1.6x single-threaded on short-read Illumina)
for rec in fqxv.open("reads.fqxv", streams=("seq",)):
    ...                                         # rec.name == rec.quality == b""

# FASTA out, quality skipped entirely — the CLI's `decompress --fasta` as an API
fqxv.decompress_to_path("reads.fqxv", "reads.fasta", fasta=True)

# Whole-archive convenience
fqxv.decompress_to_path("reads.fqxv", "reads.fastq")
raw = fqxv.decompress_to_bytes("reads.fqxv")
info = fqxv.inspect("reads.fqxv")
print(info.reads, info.format_version, info.platform)

# Column projection / random access (plain layout only)
idx = fqxv.open_index("reads.fqxv")
seqs = fqxv.read_sequences("reads.fqxv")        # list[bytes], skips quality
ids = fqxv.read_names("reads.fqxv", groups=[0]) # just the first row group
block0 = fqxv.read_block("reads.fqxv", 0)       # list[Record]

# Read over the network (fqxv.remote, standard-library HTTP). Streaming decodes the
# whole archive on the fly; projection fetches only the column you ask for via HTTP
# byte-range requests.
import fqxv.remote as remote
for rec in remote.stream("https://host/reads.fqxv"):   # or a presigned S3 URL
    ...                                                # streams; no full download
arc = remote.open_index("https://host/reads.fqxv")     # 1 tail GET → footer index
names = arc.names()                                    # ~1% of the file, CRC-checked
print(arc.bytes_fetched, "of", arc.size)
n = remote.download("https://host/reads.fqxv", "reads.fastq")  # → FASTQ on disk

# Any file-like works, so an AWS SDK response streams straight in — no fqxv HTTP:
import boto3
body = boto3.client("s3").get_object(Bucket=b, Key=k)["Body"]
for rec in fqxv.open(body):
    ...
# For concurrent async range fetches, drive fqxv.parse_index_suffix /
# Index.stream_range / fqxv.decode_*_bytes with your own httpx/aiohttp session
# (see fqxv.remote's module docstring).

# Integrity check — raises fqxv.FqxvError on a corrupt archive
fqxv.verify("reads.fqxv")

# Project the archive size/ratio from a FASTQ *without* compressing (gzip/BGZF ok)
est = fqxv.estimate("reads.fastq.gz", level=5)  # also: quality_binning=, sample_reads=
print(est.ratio, est.archive_bytes, est.exhausted)

# Paired mates (or 10x R1/R2/I1/I2) compress into one archive — pass a list and
# their sample sizes are summed. A str/bytes source stays a single input.
est = fqxv.estimate(["R1.fastq.gz", "R2.fastq.gz"])

The on-disk .fqxv format is stable at 1.0 (a version independent of this package's), so archives written today stay readable by later releases — and an archive this build cannot read is refused with an error, never misread.

Projection and open_index are unavailable for globally-reordered archives (--order any, --max, --order shuffle), whose streams are mutually dependent; use fqxv.open() to iterate those — streams= selection works on every layout. Two selection caveats: long-read archives code quality against the bases, so selecting quality still decodes the sequence internally; and a skipped stream's integrity digest cannot be checked (run fqxv.verify() for a full check). Everything here is read-only: verify and estimate only measure — neither writes an archive — and full compression stays in the CLI.

Full API reference: https://rnabioco.github.io/fqxv/python/.

Build from source

uv pip install maturin
maturin develop            # from crates/fqxv-python/

Metadata

Release files for fqxv 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fqxv 0.8.1
File Size Uploaded Provenance Actions
fqxv-0.8.1.tar.gz 980.4 kB With provenance Details for fqxv-0.8.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for fqxv 0.8.1
File Actions
fqxv-0.8.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for fqxv-0.8.1-cp39-abi3-win_amd64.whl
fqxv-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for fqxv-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fqxv-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details for fqxv-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
fqxv-0.8.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for fqxv-0.8.1-cp39-abi3-macosx_11_0_arm64.whl
fqxv-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details for fqxv-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl

Total release size: 3.8 MB

Release files / fqxv-0.8.1.tar.gz

Download URL fqxv-0.8.1.tar.gz
Size 980.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d597ab7d4f1dd7628da4b950e0011d8d67bcc12654ebaa680852166e76537cf2
BLAKE2b-256 checksum
How to use checksums
5b5fb65fc4943ef2f25ecd9c8e7a652e0e546903995598b4efceecd91059f2a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / fqxv-0.8.1-cp39-abi3-win_amd64.whl

Download URL fqxv-0.8.1-cp39-abi3-win_amd64.whl
Size 520.1 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9d90f3a67f54c18be7ce2d44b50c0c0c689fc872df95cf342c11f431f5d42865
BLAKE2b-256 checksum
How to use checksums
74c47864fc1f7c1927bd98942fd23f52f21a929449523eaa4e8b087a2a78e3ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / fqxv-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fqxv-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 629.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
b66f5aee89a105ccbf6cd9626f9c7553469616503a227902b5cdf32d4f7fabf6
BLAKE2b-256 checksum
How to use checksums
c3e4e482615ea48103a9e4f1533bfe19a2ec84edd9947287f9b9657ba54ad9e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / fqxv-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fqxv-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 584.9 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
45f0cfe37fd87a697b0fad303b02e83eeada55b02ebcc747b9fab80e7665e7f9
BLAKE2b-256 checksum
How to use checksums
cf67c2544868e28d95c992ab3232d34a1d415a6354aa480063732306932c6f7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / fqxv-0.8.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL fqxv-0.8.1-cp39-abi3-macosx_11_0_arm64.whl
Size 539.1 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
91dbdb4bf5f42d745f6f7ae738a1b9e406889892ec80fd799dc6a77552271cfb
BLAKE2b-256 checksum
How to use checksums
b3b4bc944bd01fa3330360553d0fdfa95cbec89e43f8d41f0f2c0e0abd31d079
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / fqxv-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL fqxv-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 594.9 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0e3752d5d28bc941aa22050dab9b9d9d01eb4f0f56006f45cf70d71462f8020f
BLAKE2b-256 checksum
How to use checksums
0c3d81e98a044204c6fd153559578833c0569dbfba865a1411f0a4886aeb6d3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Security for fqxv 0.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for fqxv-0.8.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page