Hi everyone. I'm working with some other people to write an OS in Rust. Our plan is to make a modular monolithic kernel so naturally we need to have some form of ABI stability for modules and the base kernel to be able to call/return into each other.
To that end I wanted to ask if anyone knows what the current state of crABI is and if it's on the path to stabilization at some point or even just functional enough to be used for what we need on nightly (which is our normal toolchain channel for the project).
Also is there any documentation for using crabi as in its current state?
If crabi isn't usable the only other option I can think of is lots and lots of extern "C"
wrapper functions and marshaling and unmarshaling a ton of data structures on both sides of the ABI boundary and reducing performance by a decent amount reducing one of the main benefits of our chosen kernel architecture.
I'd also be open to hearing any alternative solutions to this problem as well if you know of any.
As of now the goal is for the base kernel and all modules to be written in Rust and if any third-party wants to use another language then they need to provide whatever adapter code is needed to make that possible.