Hello again!I was going to try to install Wasmer to Genode but it is written in Rust. Are there Rust bindings for Genode yet? If not, can I help get them going?
Hi Sam,
On 07.09.22 21:28, Sam Crow via users wrote:
Are there Rust bindings for Genode yet? If not, can I help get them going?
I am not away of any current Rust-related work.
Back in 2016, Rust support was first added to the framework [1] as a one-off community contribution. We maintained this work until 2019 but eventually removed it [2]. This history notwithstanding, I think that the integration of Rust-based software into Genode systems gets more and more desirable.
[1] https://github.com/genodelabs/genode/pull/1899 [2] https://github.com/genodelabs/genode/issues/3488
Nowadays, I would recommend approaching the support of Rust by using the Goa tool [3]. Instead of adding Rust support to the Genode build system and force Genode's work flow on Rust developers, Goa could be extended to convince Rust's natural tools (e.g., cargo) to produce Genode-compatible binaries. So developers can keep up their familiar work flows when targeting Genode.
Goa already shows how that can be done for projects based on CMake, Autoconf, and QMake. So I'd recommend to explore the opportunity of integrating Rust support into Goa, targeting Genode's libc as platform (which is largely compatible with FreeBSD's libc). For a start, you may consider the "Step-by-step tutorials" referenced in the README of Goa.
[3] https://github.com/nfeske/goa
Cheers Norman
Thank you.
I've bookmarked Goa and am looking into it. I know Haiku is using the CLib crate for their Rust bindings too. My ultimate goal for this project is to get Wasmer running on Genode. WebAssembly outside the browser would make closed-source packages a possibility, I think. This would open up possibilities of lots of software (like games that don't allow cheating by looking at the source, for example) to be accessible to Genode users without breaking the sandbox of security.
I'm looking forward to having Genode on my PinePhone.
Thanks again,
Sam Crow