mustang

Selected C-ABI-compatible libc, libm, and libpthread interfaces

Github Actions CI Status zulip chat crates.io page docs.rs docs

Support crate for *-mustang-* targets. See [here] for usage instructions.

In *-mustang-* targets, this crate automatically pulls in crates to perform program initialization and termination, provide selected libc symbols, and registers a global allocator. By default, it uses [dlmalloc]; alternatively, [wee_alloc] can be enabled with a cargo feature.

To use, add a mustang dependency to Cargo.toml, and add this line to your main.rs:

rust mustang::can_run_this!();

This macro expands to nothing in non-*-mustang-* builds.

This is part of the [Mustang] project, building Rust programs written entirely in Rust.

Using mustang non-mustang programs

In non-*-mustang-* targets, importing this crate and using the mustang::can_run_this!() macro has no effect, does not depend on nightly Rust, and has no extra dependencies.

See the [mustang-macro-does-nothing example] for more details.