Skip to content
@project-robius

Project Robius

Community for Multi-platform Application Development in Rust

Robius: Multi-Platform App Dev in Rust

Robius Book Code Examples Matrix Chat 中文

Robius is a fully open-source, decentralized, community-driven effort to enable multi-platform application development in Rust.

For more info, check out:

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:

  1. Rust developers can create safe, beautiful, and robust applications that execute efficiently and performantly on a wide variety of platforms, especially mobile.
  2. Frontend developers using other languages are encouraged to come over to the dark side wonderful world of Rust and give it a try, with a seamless transition experience that helps overcome the steep learning curve commonly associated with Rust.
  3. 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:
      1. Set up new project directories with auto-generated scaffolding for platform-specific integration components that can be customized post-creation.
      2. 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:

  1. 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.
  2. 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

For more examples, check out the extensive set of Dioxus example apps and Makepad example apps. Osiris-specific examples are coming soon.

Contributing

We welcome contributions, ideas, and suggestions from anyone! We're also open to help you host and maintain your project under the umbrella of the Robius organization.

Translations of book content and READMEs to other languages are especially appreciated! If you speak multiple languages and are feeling generous, kindly reach out to us.

As mentioned up top, please feel free to reach out to our friendly community of devs on the Robius space on Matrix chat.
Matrix Chat

Footnotes

  1. Robius is not officially affiliated with the Rust project or Rust foundation.

Pinned Loading

  1. robrix robrix Public

    Robrix: a multi-platform Matrix chat client written in Rust using the Makepad UI toolkit and the Robius app dev framework

    Rust 98 18

  2. book book Public

    The Robius book: details about our vision for multi-platform app dev in Rust, plus docs, tutorials, examples, and more.

    17 3

  3. makepad_wechat makepad_wechat Public

    WeChat-like application implemented with Makepad

    Rust 21 6

  4. makepad_wonderous makepad_wonderous Public

    Makepad version of the Wonderous app

    Rust 1 3

Repositories

Showing 10 of 36 repositories
  • project-robius/robius-location’s past year of commit activity
    Rust 1 0 0 0 Updated Nov 20, 2024
  • robrix Public

    Robrix: a multi-platform Matrix chat client written in Rust using the Makepad UI toolkit and the Robius app dev framework

    project-robius/robrix’s past year of commit activity
    Rust 98 MIT 18 29 (16 issues need help) 11 Updated Nov 19, 2024
  • .github Public

    Project Robius: GitHub profile landing page

    project-robius/.github’s past year of commit activity
    1 MIT 2 0 0 Updated Nov 10, 2024
  • matrix-rust-sdk Public Forked from matrix-org/matrix-rust-sdk

    Matrix Client-Server SDK for Rust

    project-robius/matrix-rust-sdk’s past year of commit activity
    Rust 1 Apache-2.0 258 0 0 Updated Nov 6, 2024
  • robius-packaging-commands Public

    A multi-platform companion tool to help package your Rust app when using `cargo-packager`

    project-robius/robius-packaging-commands’s past year of commit activity
    Rust 2 MIT 0 0 0 Updated Nov 3, 2024
  • robius-authentication Public

    Rust abstractions for multi-platform native authentication (biometric, fingerprint, password, FaceID, TouchID etc)

    project-robius/robius-authentication’s past year of commit activity
    Rust 6 1 0 0 Updated Nov 1, 2024
  • robius-open Public

    Rust abstractions for multi-platform opening of URIs

    project-robius/robius-open’s past year of commit activity
    Rust 0 1 0 0 Updated Nov 1, 2024
  • robius-use-makepad Public

    Auto-configures all `robius-*` crates in your dependency tree to work with Makepad

    project-robius/robius-use-makepad’s past year of commit activity
    Rust 0 MIT 0 0 0 Updated Oct 31, 2024
  • robius-directories Public Forked from dirs-dev/directories-rs

    a fork of `directories-rs` that adds support for Android

    project-robius/robius-directories’s past year of commit activity
    Rust 0 Apache-2.0 36 0 0 Updated Oct 31, 2024
  • robius-android-env Public

    easy Rust access to Android state (native Java objects) managed by UI toolkits

    project-robius/robius-android-env’s past year of commit activity
    Rust 5 MIT 2 0 0 Updated Oct 31, 2024