Skip to content

ci: add riscv64 wheel builds#506

Open
gounthar wants to merge 2 commits intoopenai:mainfrom
gounthar:add-riscv64-wheels
Open

ci: add riscv64 wheel builds#506
gounthar wants to merge 2 commits intoopenai:mainfrom
gounthar:add-riscv64-wheels

Conversation

@gounthar
Copy link
Copy Markdown

@gounthar gounthar commented Mar 12, 2026

Summary

Add linux_riscv64 wheels to the build workflow, mirroring the existing
aarch64 build job.

Changes

  • New build_wheels_riscv64 job using cibuildwheel + QEMU emulation
  • Targets CPython 3.10–3.14 (including free-threaded) on manylinux_riscv64
  • Skips musllinux (no riscv64 image available)
  • Includes Rust/Cargo environment for cross-compilation inside QEMU
  • 120-minute timeout to account for QEMU + Rust compilation overhead
  • Added to join_artifacts dependency list

Evidence

A tested riscv64 wheel is available in our community index:
https://gounthar.github.io/riscv64-python-wheels/simple/tiktoken/

Built natively on BananaPi F3 (SpacemiT K1, rv64imafdcv, 8 cores @ 1.6 GHz, 16 GB RAM).

Context

  • manylinux_2_28_riscv64 is available in pypa/manylinux
  • cibuildwheel 3.x supports riscv64 via QEMU
  • Rust cross-compiles to riscv64gc-unknown-linux-gnu inside the manylinux container
  • Several packages already ship riscv64 wheels on PyPI (aiohttp, yarl, multidict, regex)
  • RISC-V hardware is shipping (SiFive, SpacemiT K1/K3, Sophgo SG2044)

Closes #502


Note: this work is part of the RISE Project effort to improve Python ecosystem support on riscv64 platforms. Native riscv64 CI runners are available for free via RISE RISC-V runners.

Add a build_wheels_riscv64 job using cibuildwheel with QEMU emulation.
Targets CPython 3.10-3.14 (including free-threaded) on manylinux_riscv64.
Skips musllinux (no riscv64 image available). Higher timeout (120 min)
to account for QEMU + Rust compilation overhead.

Closes openai#502
@gounthar
Copy link
Copy Markdown
Author

Native build verified on riscv64 hardware (BananaPi F3, SpacemiT K1, rv64gc, GCC 14.2.0): SUCCESS.

@gounthar
Copy link
Copy Markdown
Author

Successful riscv64 build on native RISE runner (~5 min): https://github.com/gounthar/tiktoken/actions/runs/23745982111

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add riscv64 (linux_riscv64) wheel to PyPI releases

1 participant