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