cross-rs/cross

“Zero setup” cross compilation and “cross testing” of Rust crates

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 50 minutes ago
Added to GitGenius on September 7th, 2026
Created on December 25th, 2016
Open Issues & Pull Requests: 259 (+0)
GitHub issues: Enabled
Number of forks: 460
Total Stargazers: 8,314 (+0)
Total Subscribers: 43 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

cross is a command-line tool that enables zero-setup cross compilation and cross testing of Rust crates for architectures beyond the native platform.

The tool solves the friction of setting up cross-compilation environments by bundling all necessary ingredients—toolchains, libraries, and build artifacts—inside Docker or Podman containers. This containerized approach means developers do not need to modify their system installation or manually configure complex build environments. The tool mirrors Cargo's command-line interface exactly, so it integrates seamlessly into existing Rust workflows. Beyond compilation, cross uniquely supports testing crates against non-native architectures like aarch64, ARM, MIPS, PowerPC, and others, using binfmt_misc to execute foreign binaries on the host system.

Developers should adopt cross when targeting architectures other than i686 or x86_64, or when they want to avoid the complexity of manual cross-compilation setup. It suits projects that need portable binaries or must verify correctness across multiple architectures. The tool requires Docker or Podman as a dependency and relies on rustup for Rust toolchain management. On Linux, cross testing requires kernel support for binfmt_misc. The project supports stable, beta, and nightly Rust channels, and configuration can be managed through Cargo.toml metadata, a dedicated Cross.toml file, environment variables, or the CROSS_CONFIG variable.

The project maintains active engagement with contributors through a dedicated Matrix room and welcomes new participation. Development is organized around a dedicated cross-rs team that took over maintenance from the Rust Embedded Working Group Tools team. The tool is distributed as pre-compiled release binaries and through cargo-binstall, reducing friction for adoption.