googleapis / googleapis/google-cloud-python

Add riscv64 (RISC-V) manylinux wheel builds

Open
#16,517 1 comment 0 reactions 0 assignees View on GitHub
api: storage priority: p3 type: feature request
Dominant language
Python
Stars
5.4k
Forks
1.8k
Avg merge
3d 4h
Merged PRs (30d)
122

Description

**Is your feature request related to a problem? Please describe.**

There are no pre-built wheels for the `linux_riscv64` platform. Users on RISC-V hardware (e.g., SiFive boards, StarFive VisionFive 2, Milk-V) must compile google-crc32c from source, which requires a working C toolchain, cmake, and the google/crc32c submodule. This is a significant barrier for RISC-V adoption since many users expect `pip install google-crc32c` to just work.

**Describe the solution you'd like**

Add `riscv64` to the manylinux wheel build matrix using `quay.io/pypa/manylinux_2_28_riscv64` (the official PyPA manylinux image for RISC-V). The existing `build_on_centos.sh` script already works inside manylinux_2_28 containers, and QEMU user-mode emulation makes cross-building straightforward.

Additionally, add a GitHub Actions workflow that builds and tests riscv64 wheels via QEMU, so CI coverage is visible on pull requests.

**Describe alternatives you've considered**

- Building from source on native riscv64 hardware: works but is slow and requires users to have build tools installed.
- Cross-compiling with a riscv64 GCC toolchain outside Docker: more complex setup and harder to produce manylinux-compliant wheels.

**Additional context**

- The `manylinux_2_28_riscv64` image is officially maintained by PyPA: https://quay.io/repository/pypa/manylinux_2_28_riscv64
- The google/crc32c C library builds cleanly on riscv64 with cmake
- Several Python ecosystem packages (numpy, scipy, etc.) are adding riscv64 wheel support

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.