Hi everybody,
It would be great to revive the email user-agent topic. Could this endeavour be a welcome opportunity to stress Goa's new Rust support by experimenting with (existing?) Rust-based protocol implementations (IMAP, SMTP...) as building blocks? Ben wondered about a natural place for Rust in our picture. I sense that this use case could provide us with a tangible way to let the combination of Rust with Genode shine.
I haven't personally used it, but runt[1], an isync[2]-like IMAP <-> Maildir synchronization tool, could maybe be a useful building for Stefan's (mutt) setup on Genode. However it seems that runt is being even less actively developed than isync. Moving towards a custom GUI, himalaya[3] is a CLI email client that could probably be wired up similarly to the recent SIP client GUI[4]. Finally, rust-imap[5] as a library is rumored to be of good quality. As Michael R. Elkins observed[6], it's not easy to build a decent email client. I think on the one hand, email is indeed a use case where Genode-style decoupling of components really could shine. On the other hand, I believe it's important to set a reasonably narrow scope, especially if we're building our own GUI like Stefan suggested.
As for my Rust aspirations, I guess how deeply using Rust in this context will touch native Genode interfaces strongly depends on the runtimes chosen in the different building blocks (porting of a Posix program vs. native library, use of something like the Terminal Crosslink vs. Genode IPC and Dataspaces etc.) I think a deeper exploration of the email client roadmap idea would best be done in person, it sure seems an interesting way to explore native Genode components and Rust!
Best wishes,
Ben
[1] https://github.com/mordak/runt [2] https://isync.sourceforge.io/ [3] https://github.com/soywod/himalaya [4] https://genodians.org/jws/2023-11-16-sip-client-for-genode [5] https://github.com/jonhoo/rust-imap [6] "All mail clients suck. This one just sucks less." -me, circa 1995 http://www.mutt.org/