Hi Zach,
I'll answer the question which is in my core expertise and leave it to my colleagues to give possibly more nuanced answers to your other questions:
[2] What is the state of rust support for Genode? I have seen a few mentions of it in release notes. Can I make base API calls from rust (e.g., requesting sessions, creating child components, etc.), or is it similar to running applications with the POSIX compatibility layer?
Currently our Rust support is focused on leveraging the existing ecosystem, i.e. we focused on getting the unmodified Rust standard library to run on our FreeBSD-based compatibility layer (see the beginning of my blog post[1] for our rationale behind that).
Now, just as Rust links to our port of the FreeBSD C library via the libc crate, it would be possible to leverage Rust's Foreign Function Interface (FFI) to call into to our base library, which as you probably know serves as the abstraction layer to the various kernels supported by the Genode OS Framework. I would be very much interested to pursue this, but so far due to lack of commercial funding there is no timeline for supporting base API calls from Rust. I haven't worked with Rust's FFI in quite some time, so I can't estimate how easily this could be accomplished with rust-bindgen[2] or the cxx.rs library[3]. If you want to give it a shot, we can surely support you with getting the application to work with goa[4]. I will bring up base API support for Rust when we discuss next year's roadmap.
I hope that answers at least one of your questions!
Best wishes,
Ben
[1] https://genodians.org/atopia/2023-05-30-bringing-rust-back-to-genode [2] https://rust-lang.github.io/rust-bindgen/cpp.html [3] https://cxx.rs [4] https://github.com/genodelabs/goa/