#docker-build #cargo-build #docker #build #buildkit #rustc-wrapper #docker-host

build rustcbuildx

$RUSTC_WRAPPER tool to sandbox cargo builds and execute jobs remotely

2 unstable releases

0.2.0 May 12, 2024
0.1.0 Dec 3, 2023

#31 in Build Utils

Download history 9/week @ 2024-02-26 28/week @ 2024-03-04 6/week @ 2024-04-01 115/week @ 2024-05-06 38/week @ 2024-05-13

153 downloads per month

MIT license

115KB
2K SLoC

rustcbuildx

Forwards rustc calls to BuildKit builders.

rustcbuildx is a RUSTC_WRAPPER for cached and remote building of Rust projects (on BuildKit).

Usage

  • Ensure at least either a docker or podman client is installed
  • Known to work on Ubuntu 22.04 with github.com/docker/buildx v0.11.2 9872040 and rust 1.73
# Keep images in sync with your local tools
rustcbuildx pull

export RUSTC_WRAPPER=rustcbuildx
cargo build ...
cargo check ...
cargo clippy ...
cargo install ...
cargo test ...

# or
RUSTC_WRAPPER=rustcbuildx cargo build ...
RUSTC_WRAPPER=rustcbuildx cargo check ...
RUSTC_WRAPPER=rustcbuildx cargo clippy ...
RUSTC_WRAPPER=rustcbuildx cargo install ...
RUSTC_WRAPPER=rustcbuildx cargo test ...

Fine tuning settings

rustcbuildx@version: $RUSTC_WRAPPER tool to sandbox cargo builds and execute jobs remotely
    https://github.com/fenollp/supergreen

Usage:
  rustcbuildx env             Show used values
  rustcbuildx pull            Pulls images (respects $DOCKER_HOST)
  rustcbuildx -h | --help
  rustcbuildx -V | --version

Remote execution

Say you have a bigger machine in your ~/.ssh/config called extra_oomph:

export DOCKER_HOST=ssh://extra_oomph
# Then
export RUSTC_WRAPPER=rustcbuildx
cargo test ...

Installation

# Installs to ~/.cargo/bin
cargo install --locked --force --git https://github.com/fenollp/supergreen.git

# Make sur $CARGO_HOME/bin is in your $PATH
which rustcbuildx

En vrac

Dependencies

~6–18MB
~197K SLoC