Building Rust programs with Goa on SculptOS

With my limited understanding of Goa and Genode in general, this is simply a hypothetical question to set my expectations for the future.

On Linux and BSD I use Rust’s cargo build tool to build and install many useful software packages. Some of which would make life much easier in SculptOS (a CLI or TUI email client for example).

So I’d just like to know what the scope of this development is. Is the intention to make most (if not all) rust crates build and install on Genode using Goa?

1 Like

It appears to have a high priority and to be coming along nicely. Genodians - the official developer’s blog - has a number of articles exploring the status of Rust support.

2 Likes

Sorry for the late reply, your post came up right at the beginning of my vacation.
Short answer: it would be nice to make most Rust crates work, but at Genode Labs we won’t offer comprehensive Rust support (as in “most (if not all)” rust crates) anytime soon, unless there is commercial interest in the necessary enhancements.

Long answer:
In theory, you can already build all kinds of crates using Goa. However, Genode’s Rust support uses Rust’s FreeBSD target. Our port of FreeBSD’s C library doesn’t aim to be a complete and faithful emulation of FreeBSD, so depending on the software you are trying to port, it may fail to link because of an unimplemented C library function, or it may fail to work correctly if it relies on FreeBSD features that Genode doesn’t have full support for (e.g. C library calls that always return an error on Genode because the underlying system call might not be applicable in our POSIX runtime).

What’s more, as you probably know a lot of Rust crates depend 3rd party (C/C++) libraries, which may or may not have Genode ports readily available. This is not necessarily a huge problem, for example our ripgrep port works just fine without libpcre2 as an optional dependency, but on the flip side, having Rust support of course doesn’t relieve us from porting required library dependencies as well.

This being said, I’m excited to see Rust support on Genode grow and I hope we will be able to greatly expand our support for Rust crates in the future.

3 Likes

Thanks for the reply, and perhaps I must also apologise for my late reply to you.

Rather than create another topic, I’ll just post a question here that will expand more one what I am hoping to one day achieve on SculptOS. It is slightly off topic and does not relate to Rust or GOA, but it’s what prompted my question in the first instance.

So far, my knowledge and experience with Sculpt is very limited, but I’m very impressed and excited to learn more. I wonder how I might use this system as a daily OS. We have a web browser, which does most things. And as a fallback, a tiny core VM which can run Firefox if needed.

I’m a longtime Linux and BSD user (NetBSD being my main OS). I use mostly command line and terminal user interface tools for most tasks but there are always GUI tools to fall back on.

On SculptOS, will it be possible to have an email client of sorts? Presumably if we can emulate Firefox inside a TinyCore VM we could do the same for Thunderbird. But I’m probably more interested in native solutions. aerc, mutt, alpine etc are all great CLI email clients. It would be excellent if the UNIX emulation could be expanded to support such tools? Or perhaps new tools written specifically for GENODE?

For me, I can use an OS daily if I have access to the modern web, my email, and preferably also IRC or Matrix.

I’m aware that SculptOS is still in development, and I’m more curious than anything else. How to others, who use SculptOS daily, perform such tasks as checking emails, and communicating online?

One last thing, again unrelated to the original topic. Will we ever get git on SculptOS?

1 Like

A rust email client was on the roadmap last year, and is possible that it will be this year as well.

2 Likes

Thunderbird readily packaged in a Tinycore VM is available via my alex-ab depot, so in case you want to start today, give it a try. I’m using the Thunderbird package every day.

3 Likes

Sorry if my questions are unresearched, I do try to look first and ask questions later, but sometimes my adhd gets the better of me :stuck_out_tongue:

I’ll certainly try it out. But I’m very excited to find out that a native rust email client might be in the works.

I’m going to do my best to NOT spam these forums with my questions and general excitement, but I do tend to obsess over things once they peak my interest, and SculptOS has certainly captured my attention :nerd_face:

Totally feel you!

Don’t think there’s too much danger of overloading the forum fwiw. As far as I know, that kinda why the discourse forum was made - as place to put lighter less thought out things compared to the mailing list

5 Likes

It’s not written in Rust, but the Vision IRC client has a tentative Genode port in early stages (it crashes at startup). Time will tell if a brave soul with Genode debugging acumen can take it past the finish line ^^

EDIT: I think ThunderBird has an integrated instant messenger panel, that handles Matrix/Jabber/IRC, so that covers it (in a more modern way) in fact… At least for those running the relevant VM.

1 Like