project-robius / robrix

A Matrix chat client written in pure Rust using the Makepad UI toolkit and the Robius app dev framework
MIT License
67 stars 11 forks source link
chat makepad matrix matrix-org project-robius robius rust

Robrix: a Rust Matrix client built atop Robius

Robrix Matrix Chat Project Robius Matrix Chat

Robrix is a Matrix chat client written in Rust to demonstrate the functionality of Project Robius, a framework for multi-platform application development in Rust.

▶️ Click here to see the Robrix project tracker!

⚠️ Robrix is a work-in-progress that doesn't yet support all Matrix chat features.

Note that only the first "Rooms" tab of the UI is in use.

Check out our most recent talks and presentations for more info:

The following table shows which host systems can currently be used to build Robrix for which target platforms. Host OS Target Platform Builds? Runs?
macOS macOS
macOS Android
macOS iOS
Linux Linux
Linux Android
Windows Windows
Windows Android

Building and Running

First, install Rust.

Then, install the required native libraries. For example, on Linux:

sudo apt-get install libsqlite3-dev libssl-dev

Then, on a standard desktop platform (macOS, Linux, Windows), simply run:

cargo run -- 'USERNAME' 'PASSWORD' ['HOMESERVER_URL']

Building Robrix for Android

  1. Install the cargo-makepad build tool:

    cargo install --force --git https://github.com/makepad/makepad.git --branch rik cargo-makepad
  2. Use cargo-makepad to install the Android toolchain, with the full NDK:

    cargo makepad android install-toolchain --full-ndk
  3. Build and run Robrix using cargo-makepad:

    • Fill in your username and password in the login.toml file.
    • Then use cargo makepad to build and run:
      cargo makepad android run -p robrix --release
    • You'll need to connect a physical Android device with developer options enabled, or start up an emulator using Android Studio.
      • API version 33 or higher is required, which is Android 13 and up.

Feature status tracker

These are generally sorted in order of priority. If you're interested in helping out with anything here, please reach out via a GitHub issue or on our Robius matrix channel.

Basic room views and fundamental actions

Auxiliary/admin features: login, registration, settings

Known problems/issues