Skip to content

cargo-prebuilt/cargo-prebuilt

Repository files navigation

cargo-prebuilt

Rust Build and Test Rust Checks Crates.io rustc-msrv

Download prebuilt binaries of some crate.io crates.

See supported targets, a list of prebuilt crates, and the official index here.

(Some targets may not be prebuilt for some crates).

Request a crate to be added to the official index here.

See the currently supported versions here

How to Use

Cargo prebuilt overwrites existing binaries by default. To stop this use the -s flag, --safe flag, or add safe = true to your config file.

To download a crate: cargo prebuilt CRATE_NAME

To download multiple crates: cargo prebuilt CRATE_1,CRATE_2,CRATE_3,...

To download a version of a crate: cargo prebuilt CRATE_NAME@VERSION

To download multiple crates with versions: cargo prebuilt CRATE_1@V1,CRATE_2,CRATE_3@V3,...

Need help? Try: cargo prebuilt --help or see Config Info

Installation

More ways and how to verify your download here.

  • You can download the latest prebuilt binaries of cargo-prebuilt here.

  • Cargo install: cargo install cargo-prebuilt

  • Cargo prebuilt: cargo prebuilt cargo-prebuilt

  • Cargo binstall: cargo binstall cargo-prebuilt --no-confirm

  • Cargo quickinstall: cargo quickinstall cargo-prebuilt

  • Install script (unix platforms):

    curl --proto '=https' --tlsv1.2 -sSf \
    https://raw.githubusercontent.com/cargo-prebuilt/cargo-prebuilt/main/scripts/install-cargo-prebuilt.sh \
    -o install-cargo-prebuilt.sh \
    && bash install-cargo-prebuilt.sh \
    && rm install-cargo-prebuilt.sh
  • For GitHub actions you can use cargo-prebuilt/cargo-prebuilt-action

Building

(Cargo prebuilt requires either the native or rustls feature)

cargo build

Events

To output events use --out.

See Events.

Reports

Reports are generated during crate build time in the index.

They are stored under $REPORTS/$CRATE/$VERSION by default.

See Report Directory ($REPORTS).

Use --report-path to change where they are stored.

Report Types

Using a custom index

GitHub public

Template (Usually out of date compared to the main index)

Your URL should be formatted like github.com/cargo-prebuilt/index. cargo-prebuilt requires HTTPS.

  • export PREBUILT_INDEX=gh-pub:$URL

  • cargo prebuilt --index=gh-pub:$URL CRATES

  • config.toml

    [key.index]
    index = "gh-pub:$URL"
    pub_key = []

GitHub private

Beta Feature.

Your URL should be formatted like github.com/cargo-prebuilt/index. Cargo-prebuilt requires HTTPS.

This index requires an auth token with: Repository permission -> Contents -> Read-only. Generate a token

  • export PREBUILT_INDEX=gh-pri:$URL

  • cargo prebuilt --index=gh-pri:$URL CRATES

  • config.toml

    [key.index]
    index = "gh-pri:$URL"
    pub_key = []
    auth = ""