Skip to content

Add riscv64 (linux_riscv64) wheel to PyPI releases #327

Description

@gounthar

Add linux_riscv64 wheel to PyPI releases

Summary

pip install tree-sitter-bash on riscv64 Linux currently requires building from source (~1 min on a 1.6 GHz RISC-V SoC). Adding linux_riscv64 to the wheel build matrix would give riscv64 users a prebuilt wheel.

Evidence

Tested wheel tree_sitter_bash-0.25.1-cp310-abi3-linux_riscv64.whl
Hardware BananaPi F3 (SpacemiT K1, rv64imafdcv, 8 cores @ 1.6 GHz, 16 GB RAM)
Python 3.13 (CPython)
Build system cibuildwheel (via tree-sitter/workflows reusable workflow)
Build time ~1 min (native, on hardware)

The wheel imports and passes basic smoke tests on riscv64 Linux.

Suggested CI change

Workflow: tree-sitter/workflows/.github/workflows/package-pypi.yml (reusable)

The fix must go to the shared reusable workflow in tree-sitter/workflows, not this repo:

In tree-sitter/workflows/.github/workflows/package-pypi.yml:

# Change CIBW_ARCHS: native to include riscv64 via QEMU
# Or add a separate emulated job for riscv64

This would fix riscv64 for ALL tree-sitter grammar packages at once.

Ecosystem context

  • manylinux_2_28_riscv64 images are available on quay.io/pypa/ (landed in pypa/manylinux, 2025)
  • cibuildwheel 3.x supports riscv64 via QEMU emulation
  • auditwheel supports riscv64 platform tags
  • maturin-action supports riscv64gc-unknown-linux-gnu cross-compilation
  • Packages already shipping riscv64 wheels on PyPI: aiohttp, yarl, regex, markupsafe, charset-normalizer, rpds-py, multidict, propcache, watchfiles, rignore, setproctitle
  • RISC-V hardware is shipping: SiFive HiFive, SpacemiT K1/K3, Sophgo SG2044 (64-core)

Our temporary index

While upstream support is pending, we maintain a PEP 503 index with 50+ riscv64 wheels for the Python ML/AI stack, built natively on RISC-V hardware.

Tracking repo: https://github.com/gounthar/riscv64-python-wheels

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