Project Robius in 2024: one year of Rust App Dev

A retrospective on our progress in the world of Rust App Dev in 2024.

Author: Kevin Boos. Last updated January 16th, 2024. Discuss this on Reddit.

This past year marked the first year of work on Project Robius: an open-source decentralized endeavor to enable developers to write immersive, fully-featured apps in pure 🦀 Rust 🦀 that work seamlessly across all major platforms.

ℹ️ Project Robius in a nutshell

While GUIs are the foundation of an app, there is more to developing a modern featureful app than just drawing a UI. Project Robius aims to fill in the gaps in the Rust app dev ecosystem by focusing on everything except the UI, such as abstractions for platform features & OS services, build & packaging tooling, and more. We leave UI work to the experts behind the many excellent Rust UI toolkits under active development.

In this post, we'll take a look back on what we've accomplished so far to make the world of Rust App Dev a little better:

  1. The crates we've published for accessing platform-provided features from Rust code
  2. The major apps we've built using Makepad + Robius together
  3. The contributions we've made to existing open-source projects in the App Dev space
  4. The connections we've fostered throughout the Rust community

We'll also take a deeper look at Robrix, a multi-platform Matrix chat client written from scratch in Rust using the Makepad UI toolkit and Robius components.

1. Robius crates for platform feature abstractions

As our primary objective, we have published several crates intended to be used directly by app devs to access a given platform feature or OS service from their app. The main goal here is for each crate to offer a safe, platform-agnostic abstraction, such that the app dev need not worry about writing any platform-specific code or dealing with each platforms' idiosyncracies.

We began working on these crates in late Spring of 2024. While development started out gradually, we are significantly ramping up our efforts for the coming year and expect to publish more frequently. That being said, here is the current list:

We've also released some "lower-level" crates that aren't intended for direct use by an app developer, but they'd be useful for other developers that want to create their own platform abstractions. The above crates depend on these in various ways.

2. Apps built in 2024 using Makepad + Robius

We (with help from many collaborators) have built both small proof-of-concept demo apps and larger "flagship" apps using Makepad + Robius. Two of the most complex flagship apps we've been developing in 2024 are:

Both of these apps are fully open-source and have releases available on their GitHub pages linked above, in case you'd like to download and try them out. Note that it's best to build them from source for the most up-to-date experience.

Robrix: an up-and-coming Matrix chat client for power users

We started Robrix about one year ago with the intention of it being a "flagship" Robius app — one that would help drive the development (and priority) of various Robius components and demonstrate their utility. Since then, our plans for Robrix have expanded beyond it serving as just a demo app or a basic Matrix client; we discuss our longer-term, multi-stage vision for Robrix in the next post.

Robrix has come a long way over the past year, thanks to 750+ commits from 10 contributors! Since starting from scratch, we have created a functional Matrix chat client with most fundamental features already complete and working well, as shown by our feature status tracker below.

Robrix's feature status tracker

With these features in place, we have began dogfooding Robrix as a daily Matrix client!

While not all main features are complete, Robrix does already have some cool features that help both power users and casual users be more productive. The biggest unique feature of Robrix is an "IDE-like" desktop UI that can display multiple rooms side-by-side in separate tabs, which can be docked and moved around via drag-n-drop actions. No more wasted horizontal space!

Robrix side-by-side dockable tab UI

Another cool feature is that Robrix's UI can automatically transition to different view layouts based on window size. This enables our single codebase to run seamlessly on desktop and mobile platforms, but you can also use any view on any platform if you want. For example, we frequently enjoy using the mid-size tablet view (below, left) or the narrow mobile view (below, middle) on a smaller laptop screen too, in addition to on our smartphones (below, right).

Robrix mid-size UI view Robrix narrow mobile UI view of the rooms list Robrix narrow mobile UI view on Android of a single room

Beyond a sleek UI, Robrix also leverages multiple Robius crates for deep integration with the native platform:

In addition to a sleek UI and robust platform integration, Robrix achieves high performance and efficiency thanks to its underlying pure-Rust stack and Makepad's emphasis on lightweight, performant code. Robrix consistently hits the maximum 120 FPS on an older M1 Macbook Pro, remaining smooth and responsive even when scrolling through 10+ rooms displayed side-by-side. We achieve this while using only around 26-30% of the system RAM that major Electron-based Matrix desktop clients consume to display a single room. (Note: these are preliminary figures that require deeper benchmarking analysis before drawing conclusions from them.)

Most importantly, thanks to the power of Makepad and Robius, Robrix has zero platform-specific code. This makes it easy to maintain and develop features/bugfixes quickly, as you don't have to consider the idiosyncracies of each platform. Thus, we invite you to check out our codebase and contribute any cool features that you'd love to have!

To learn more about Robrix, check out the following resources:

Moly: chat with local LLMs and custom AI agents

Moly (f.k.a. Moxin) is a pure Rust GUI client for running local Large Language Models (LLMs) and chatting with various AI agents. You can discover, browse, and download major open-source AI models:

Moly's discover LLM screen

and then chat with them locally without contacting any hosted LLM service.

Moly's LLM chat screen

Like Robrix, Moly was started about one year ago completely from scratch, and has been a significant driver for the development of fundamental Makepad widgets, components, and Robius infrastructure. For example, Project Robius contributions to Moly and to other projects (at the request of Moly) were driven by these needs:

To learn more about Moly, check out this blog post that demonstrates more cool features, screenshots, and examples of what you can do with Moly. Due to constraints from the underlying WasmEdge runtime, Moly currently runs only on major desktop platforms (Linux, macOS, Windows), but support for iOS and Android is planned.

3. Select contributions to other Rust app dev projects

In addition to creating, maintaining, and publishing our own crates for Rust app dev, we also strive to contribute to and improve existing crates that are already prominently used in the ecosystem.

4. Cross-collaboration with other UI and App Dev orgs

Beyond publishing crates and developing apps, we also want to bring together people of all stripes across the Ruist UI and App Dev ecosystem. To that end, Project Robius hosted an App Dev unconference at RustNL 2024 (and also GOSIM Beijing 2024), in which a few dozen Rust developers from across the world met up to discuss the shared problems we all face in developing Rust apps and UI toolkits. We discussed everything from build tooling to text layout, accessibility, Winit compatibility, and more. A few of the topics & ideas from the unconference(s) have already made it past the discussion phase and have become real projects!

In addition, thanks to our colleague Sid Askary, we began monthly meet-ups to chat about ongoing Rust UI & App Dev concerns, and to share ideas, solutions, progress updates. Attendees vary, but often include teammembers from Robius, Makepad, the Linebender organization (behind Xilem and more), Dioxus, eGUI, Pax, wgpu, Slint, and more. If you're in the Rust App Dev or UI space and would like to join future meetups, consider getting in touch!

Our Roadmaps for 2025

Check out our next blog post for roadmaps for both Project Robius and Robrix in 2025 (and beyond).

Acknowledgments

If you made it this far, thanks for reading! You must be a true fan of Rust app dev 😊!

Before we depart, I'd like to thank the following key people who have been instrumental to the success of Project Robius over the past year.


By: Kevin Boos


https://x.com/project_robius
https://mastodon.social/@kevinaboos
https://github.com/kevinaboos

Published: 2025-01-08