jmbejar / robrix

A Matrix chat client written using the Robius app dev framework in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Robrix: a Rust Matrix client built atop Robius

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

⚠️ Robrix is just getting started and is not yet fully functional.

It is currently based on the Makepad WeChat example; only the first "Rooms" tab is in use.

Building and Running

Install Rust, and then simply run:

cargo run -- 'USERNAME' 'PASSWORD' ['HOMESERVER_URL']
  • Robrix only supports a standard username + password login currently.
    • Note the usage of single quotes (not double quotes), which will prevent your shell from treating certain symbols as globs/regex patterns.
    • If you created your Matrix account using a third-party Single Sign On (SSO) like a Google account, you can set a standard password by using Element's password reset form.
  • The HOMESERVER_URL argument is optional and uses the "https://matrix-client.matrix.org/" URL by default.

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

  • View list of joined rooms
  • View timeline of events in a single room
  • Fetch and display room avatars
  • Fetch user profiles (displayable names)
  • Fetch and display user profile avatars
  • Backwards pagination (upon viewing a room timeline)
  • Dynamic backwards pagination based on scroll position/movement
  • Loading animation while waiting for pagination request
  • Stable positioning of events view during timeline update
  • Display of simple text-only messages
  • Rich text formatting for message bodies
  • Display multimedia (non-text) message events
  • Display reactions (annotations)
  • Inline link previews
  • Inline reply view
  • Interactive reaction button, send reactions
  • Reply button, send reply
  • Error display banners: no connection, failure to login, sync timeout.
  • Collapsible/expandable view of contiguous "small" events
  • Encrypted rooms, decrypting messages
  • Sending messages

Auxiliary/admin features: login, registration, settings

  • Username/password login screen
  • SSO, other 3rd-party auth providers login screen
  • Dedicated view of spaces
  • Dedicated view of direct messages (DMs)
  • Search messages
  • Room browser / search
  • Room creation
  • Room settings/info screen
  • Room members pane
  • User profile settings screen
  • Persistence of app state to disk

About

A Matrix chat client written using the Robius app dev framework in Rust

License:MIT License


Languages

Language:Rust 99.5%Language:HTML 0.5%