Skip to content

Feature request: publish manylinux aarch64 wheels #79

@TomeHirata

Description

@TomeHirata

Summary

cel-expr-python currently publishes wheels for:

  • manylinux_2_27_x86_64 / manylinux_2_28_x86_64 (Linux x86_64)
  • macosx_11_0_arm64 (macOS Apple Silicon)
  • win_amd64 (Windows x86_64)

There are no manylinux_*_aarch64 wheels, so pip install cel-expr-python fails on Linux ARM64 when --only-binary=:all: is set (common in Docker/CI), and otherwise requires a full Rust toolchain to build from source.

Motivation

I'm a maintainer of omnigent, where we use cel-expr-python for inline policy evaluation (CEL expressions for agent sandboxing). We've had to add a platform_machine != "aarch64" environment marker and conditional imports to work around the missing wheel (see omnigent-ai/omnigent#300), which means our ARM64 users lose access to CEL policies entirely.

Linux aarch64 is increasingly common across cloud infrastructure:

  • AWS Graviton (EC2, ECS, Lambda)
  • Azure Cobalt (ARM-based VMs)
  • OCI Ampere (ARM instances)
  • GCP Tau T2A (ARM VMs)
  • Self-hosted (Raspberry Pi, NVIDIA Jetson, etc.)

Suggestion

Add manylinux_*_aarch64 targets to the CI wheel build matrix. Since the project already uses PyO3/maturin, this should be achievable by adding the aarch64 target to the existing GitHub Actions workflow (e.g., via maturin-action with target: aarch64-unknown-linux-gnu and QEMU emulation or cross-compilation).

Thank you for the great library!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions