crit: Rust cross-compiler

text .__ __ ___________|__|/ |_ _/ ___\_ __ \ \ __\ \ \___| | \/ || | \___ >__| |__||__| \/

CAUTION

Work in progress.

EXAMPLE

```console $ cd example

$ crit

$ ls .crit/bin aarch64-apple-darwin aarch64-unknown-linux-gnu aarch64-unknown-linux-musl ... ```

By default, crit builds in release mode (-- -r).

See crit -h for more options.

CRATE

https://crates.io/crates/crit

DOWNLOAD

https://github.com/mcandre/crit/releases

INSTALL FROM SOURCE

console $ cargo install --bins --path .

LICENSE

FreeBSD

RUNTIME REQUIREMENTS

Recommended

CONTRIBUTING

For more details on developing crit itself, see DEVELOPMENT.md.

FAQ

Help, some targets are broken?

Check that your project is able to build with conventional cross or cargo commands against a single target. A project that does not compile against a single target, will naturally have difficulty when attempting to cross-compile for multiple targets.

Note that Rust introduces new, under-supported targets all the time. We try to keep up, but sometimes we miss a few of these. Regardless, you can declare which targets are disabled, by writing a custom pattern for the -e / --exclude-targets flag.

Some targets may lack stock support for the Rust std library. This is common for bare metal or embedded targets. For these kinds of targets, you have several strategies for resolution:

Help, cross-compilation appears frozen?

crit hides a lot of compiler noise. While a target is building, you can use common Docker commands to inspect the compilation process:

Help, cross-compilation is slow?

Yes, it sure is! Almost as slow as using Virtual Machines for cross-compilation.

Rustaceans come to expect that the Rust compiler is analytical, spending more time optimizing programs, so that the final binaries will run safer and faster. The Rust compiler often taking a long time to compile each individual target.

Naturally, when cross-compiling multiple targets, that time multiplies by the number of targets.

Some cross-compilation performance tips:

CREDITS