Robius: Multi-Platform App Dev in Rust
Robius is a fully open-source, decentralized, community-driven effort to enable multi-platform application development in Rust. That include OpenHarmony support in development
For more info, check out:
Presentations about Robius:
Project Robius's first status update & demo (RustNL 2024)
Videos: YouTube Link
Slides: PowerPoint (19MB), PDF version (12MB)
Robrix: a Matrix chat client and more (GOSIM Europe 2024)
Videos: YouTube link
Slides: PowerPoint (22MB), PDF version (16MB)
Introducing our vision for Project Robius (GOSIM 2023)
Videos: YouTube link, Bilibili link
Slides: PowerPoint (18MB), PDF version (15MB)
The Robius organization also acts as an informal1 working group: a welcoming, public space to collect and discuss resources related to improving and furthering the app dev experience in Rust.
Got a question? Want to get involved? Interested in contributing?
Come join our friendly community on the Matrix chat Robius space.
Our vision
We believe that the Rust programming language is the right choice for the next generation of application developers, but that the language ecosystem needs a bit more love and attention to make it a first-class citizen in the world of application development, particularly on mobile platforms.
We envision a future in which:
Rust developers can create safe, beautiful, and robust applications that execute efficiently and performantly on a wide variety of platforms, especially mobile.
Frontend developers using other languages are encouraged to come over to the
dark sidewonderful world of Rust and give it a try, with a seamless transition experience that helps overcome the steep learning curve commonly associated with Rust.The Rust ecosystem is broadened and strengthened, demonstrating to existing Rust experts in other domains that Rust is a great fit for highly-productive application development, not just low-level systems and embedded programming.
What's in a name?
The name Robius comes from the Latin word robius, meaning red in color, as in oxen, wheat, rust, etc. This makes for a nice color-based connection to Rust, our programming language of choice.
Robius rhymes with Mobius, and our logo/icons take inspiration from the wordplay combination of "Rust" and "Mobius strip".
Yes, technically, the original German name is Möbius, but we use an Americanized pronunciation with a long "o" sound: "Roe-bee-us" / ˈɹoʊˈbiəs.
Current status
Robius is a brand new vision -- we're just getting off the ground.
Currently, the best way to get started is to directly use one of the recommended UI toolkits to build out your application's UI and define its UX behavior. For now, everything else beyond UI will require you to add the missing pieces yourself, e.g., network connectivity, async multitasking, and access to other device peripherals or system services.
Everything is developed right here in the open, so check back for updates often! We plan to introduce a pre-alpha version of the full Robius system stack (everything beneath the application) by early-to-mid 2024, which will enable easier access to and integration of other platform/OS features alongside the UI toolkits.
Platform support 📲 🖥️ 🌐 💻 🖱️ ⌨️
➡️ Click here for a table ⬅️ showing which projects support which features on which platforms.
Key Community Projects
The Robius ecosystem consists of several independent projects that can be composed into a complete system stack to realize fast, painless application development across multiple platforms in pure Rust. Components are loosely coupled, allowing a developer (in the future) to customize which components are used to comprise the underlying system, such as choosing
Makepad is a cross-platform UI toolkit currently under active development that offers a hybrid retained-mode and immediate-mode UI model.
Rapid development cycle: very fast compile times due to a custom minimal dependency set, plus a custom DSL for live design that enables hot reloading of UI elements.
Makepad Studio: an IDE prototype built using Makepad itself with unique features like cross-process shared textures for live reload of an in-window UI app, docking tabs for file/window views, hyper-smooth code folding, and more.
Makepad framework: a (growing) collection of highly-performant widgets and minimal, zero/low-overhead platform abstractions.
Dioxus is a cross-platform, production-ready UI toolkit that is inspired by React, with a custom metalanguage called RSX that is used to declare UI elements/layout in an HTML-like style.
Supports many platforms with a set of interchangeable target renderers, including desktop, webapps, static sites, text UIs, liveview, and mobile.
Fast and memory-efficient, with perfect lighthouse scores and performance orders of magnitude better than Node or Python.
Excellent built-in abstractions for state management.
Easy, familiar styling using vanilla CSS or the CSS framework of your choice, e.g., Tailwind.
Osiris is a set of Rust interfaces for developing immersive applications atop a diverse set of operating systems services and platform-specific functionality.
Osiris aims to provide Rust apps with an easy canonical way to access platform features like storage, networking, multimedia (video, audio, camera), geolocation, device orientation (accelerometer, gyro), timers & alarms, notifications, clipboard, drag-n-drop, and more.
osi
: the primary Rust package that exposes direct access to OS interfaces. Higher-level Rust abstractions are coming soon, after raw interfaces for more platforms are complete.Osiris offers build tooling that can:
Set up new project directories with auto-generated scaffolding for platform-specific integration components that can be customized post-creation.
Generate application artifacts that adhere to the policies of each platform, i.e., packages that can be published to common app stores (Google Play, Apple App Store, Microsoft Store, etc).
Repositories of Interest
Robius aims to provide a fully-functional reference design of the entire system stack beneath the application, for which an architectural overview and detailed documentation will be available.
We also intend to provide two classes of actual applications:
Flagships: complete, fully-featured apps with a clean UI design, polished UX, and functional business logic. These apps will be publishable to platform app stores.
Simple demos: a series of basic example apps that exhibit a few key features, with mock components underneath and elsewhere.
Flagship apps
Robrix: the Robius Matrix chat client.
Currently under active development, and looking for help!
The needs of this app will be the primary driver for Robius development.
Moxin: a local explorer for open-source LLMs.
Currently under active development, and looking for help!
Allows running LLMs locally and conversing with an AI Chatbot for each model, using the WasmEdge runtime as an LLM backend runtime.
Simple demo apps
makepad_social_media_feed
: a mobile UI demo of a social media feed.Also see Makepad's more recent example: Makepad news feed.
makepad_taobao
: a UI demo for an online shopping app, similar to eBay or Taobao.todo_makepad
: a basic to-do list app.makepad_wechat
: a demo of a chat-like app UI, like WeChat, WhatsApp, Signal, etc.makepad_tiktok
: a UI demo for a TikTok-style short video browsing app.makepad_widgets_sample
: an app showcasing various widgets offered by Makepad.makepad_image_manipulation
: a demo of Makepad's ability to do funky transformations on images with high performance.7 GUIs: select implementations of the 7 GUIs benchmark, atop both Makepad and Dioxus.
For more examples, check out the extensive set of Dioxus example apps and Makepad example apps. Osiris-specific examples are coming soon.
[Summer 2025] Publish Robrix v1.0 with full Matrix functionality, for "power" users with OpenHarmony support
Offer a responsive UI design with a dockable, multi-tab view of many rooms side-by-side, which also adapts to varying screen sizes (mobile, desktop, etc).
✅ This is already complete! (as described in our previous post)
Achieve feature parity with existing major clients, including administrative features like a full settings pane, session management, room creation/admin, message search, threads, spaces, etc.
See Milestone 2 on our GitHub page for more details.
Generally, these features are not drivers of Robius development, as they don't require complex platform features, so they were of a lower priority initially.
OpenHarmony community:
Stay tuned for further developments of Robius multi-platform app development in Rust for OpenHarmony-based platforms.
Original GitHub link: Project Robius and official website robius.rs