Add riscv64 (linux_riscv64) wheel to PyPI releases
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 19.3k
- Forks
- 1.6k
- PR merge metrics
- No merged PRs in 30d
Description
Add linux_riscv64 wheel to PyPI releases
Summary
pip install tiktoken on riscv64 Linux currently requires building from source (~10 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 | tiktoken-0.12.0-cp313-cp313-linux_riscv64.whl |
| Hardware | BananaPi F3 (SpacemiT K1, rv64imafdcv, 8 cores @ 1.6 GHz, 16 GB RAM) |
| Python | 3.13 (CPython) |
| Build system | cibuildwheel (wrapping maturin) |
| Build time | ~10 min (native, on hardware) |
The wheel imports and passes basic smoke tests on riscv64 Linux.
Suggested CI change
Workflow: .github/workflows/build_wheels.yml
Add a new job using maturin-action directly (cibuildwheel doesn't support riscv64 well for Rust extensions):
build_wheels_riscv64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: PyO3/maturin-action@v1
with:
target: riscv64gc-unknown-linux-gnu
manylinux: auto
args: --release --out dist
- uses: actions/upload-artifact@v4
with:
name: wheels-riscv64
path: dist
Ecosystem context
manylinux_2_28_riscv64images are available onquay.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-gnucross-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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading .github/workflows/build_wheels.yml and the existing wheel-building jobs, then compare their artifact and release handling with the proposed PyO3/maturin-action job targeting riscv64gc-unknown-linux-gnu. Done means the workflow produces a linux_riscv64 wheel that is included in the PyPI release and passes the stated riscv64 import and smoke-test checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, linux, python, rust
- Domain
- build-system, ci-cd, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100