Rust Interract With C
Triage(2018-08-21)
The only code which can interact with the rest of the ecosystem is unidiomatic Rust, written at some kind of checkpoint between Rust and the outside world. The outside world exists, it speaks System-V, and us systems programmers spend a lot of our time talking to it. But non-rust code is unidiomatic code! Undercoating and rust proofing sprayed on your vehicle provide what the factory does not. A supple barrier that will embed the grit and stop it in its tracks. When you bring us a brand new vehicle our coatings working in conjunction with factory coatings to make your car a fortress against rust and corrosion!
We need help writing the initial content for this section.
From @japaric on February 22, 2018 13:29
An approach that has worked well for the adoption of Rust in std land is to replace existing
components of a C codebase with Rust components (rather than the more radical rewrite everything in
Rust from scratch).
I think we are lacking guides for this important use case in embedded Rust land and we should fix
that. There are different aspects to integrating Rust into a existing C codebase:
- Integrate Rust / Cargo into a C project build system.
Rust Interact With Children
The Rust team has been working on making this easier since last year but I don't know what's the
current status.
What build systems can we expect to encounter in practice? Makefiles, cmake? Do we have examples of
integrating Cargo with those?
- Binding C code (FFI)
Some examples will probably come out of the work of binding RTOSes in #45. We should write a guide
(e.g. 'how to use bindgen to bind C code that will be used in no_std context') once we have gained
experience.
- Calling Rust from C applications.
Rust Can't Interact With Anything
Example use case: write your parser in Rust and call it from C.
Do we have any examples of this? Anyone tried rusty-cheddar
in no_std context?
Rust Interact With Cells
Copied from original issue: rust-embedded/wg#48