See here for more information: https://wiki.sel4.systems/Rust
What you can do:
+ Build system support for using a rust cargo project as a library or app on seL4
+ Use most core libraries (core, alloc, collections, rustc_unicode, and a limited std)
+ Use rust dependencies from crates.io on seL4
+ Use rust to implement camkes components
+ Using rust's FFI support it is possible to call rust from C and C from rust.
Two sample apps are located here: https://github.com/SEL4PROJ/rust-camkes-samples
Instructions for building and running are on the wiki page.
Has been tested on x86 i386 and arm kzm both in qemu and hardware.
Caveats:
+ Rust's libstd functionality is limited by which muslc syscalls are supported on seL4.
+ Rust's libstd requires
muslc thread local storage support which is not currently available on seL4. We currently use a muslc branch called rust that uses a global TLS struct.
Kent McLeod
Kernel engineer / Thesis Student
DATA61 | CSIRO