c-scape 0.0.0

libc-like ABI wrapper
Documentation

C-ABI-compatible libc, libm, libpthread, and libunwind interfaces, implemented in terms of crates written in Rust, such as rsix, origin, sync-resolve, libm, realpath-ext, memchr, and parking_lot. Currently this only supports *-*-linux-gnu ABIs, though other ABIs could be added.

The goal is to have very little code in c-scape itself, by factoring out all of the significant functionality into independent crates with more Rust-idiomatic APIs, with c-scape just wrapping those APIs to implement the C ABIs.

This is currently experimental, incomplete, and some things aren't optimized.

c-scape implements malloc using the Rust global allocator, and the default Rust global allocator is implemented using malloc, so it's necessary to enable a different global allocator. The [mustang] crate handles this automatically.

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