A privacy-focused matrix client
  • Rust 68%
  • Slint 29.1%
  • Nix 2.6%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
flaxeneel2 ddc972e348
All checks were successful
build-test / build-windows (push) Successful in 3m25s
build-test / build-android (push) Successful in 4m43s
build-test / build-linux (push) Successful in 3m1s
Merge pull request 'send-receive-message' (#36) from send-receive-message into master
Reviewed-on: #36
Reviewed-by: rayyan <rayyan@echelon.sh>
2026-08-21 01:33:00 +02:00
.cargo add an easy to use android build script 2026-07-23 18:59:46 +01:00
.forgejo/workflows try use forgejo's upload artifact 2026-08-04 16:33:56 +01:00
.idea nix 2026-06-25 13:45:33 +01:00
.vscode fresh start for slint 2026-06-21 00:03:01 +01:00
android switch to gradle wrapper for android 2026-08-03 13:20:10 +01:00
scripts switch to gradle wrapper for android 2026-08-03 13:20:10 +01:00
src Bump version number to 0.1.5 and fmt 2026-08-21 00:07:21 +01:00
static add license for download svg 2026-08-19 14:55:17 +01:00
ui shorten UI comments 2026-08-20 23:36:08 +01:00
.envrc nix 2026-06-25 13:45:33 +01:00
.gitignore use per room subscription 2026-08-16 02:20:16 +01:00
build.rs fresh start for slint 2026-06-21 00:03:01 +01:00
Cargo.lock chrono gone, jiff in 2026-08-20 20:40:17 +01:00
Cargo.toml Bump version number to 0.1.5 and fmt 2026-08-21 00:07:21 +01:00
common.nix message store now deleted ; slint MESSAGES is now source of truth 2026-08-19 00:36:40 +01:00
flake.lock up to rust 1.96.1 2026-07-08 19:14:37 +01:00
flake.nix nix 2026-06-25 13:45:33 +01:00
LICENSE fresh start for slint 2026-06-21 00:03:01 +01:00
README.md add a small disclaimer to apk path 2026-07-23 19:13:47 +01:00
shell.nix up to rust 1.96.1 2026-07-08 19:14:37 +01:00

Echelon

A cross-platform matrix client focus-built for the gaming community.

Note

The main git is on https://git.flaxeneel2.net/streigen/echelon . Github is just a push mirror

Note

This branch contains the slint rewrite of the application. More details here

Contributing

The best way to contribute to us is by letting us know about any features you'd like to see in this app, or any bugs that you find. Currently pull requests are closed but we will work on opening that up once we have stable core app.

Building

Pre requisites

  • Rust
  • Android studio with android SDK 36 and SDK 26. (if you plan on building for android)
  • Xcode (if you plan on building for macOS/iOS)

If you are on NixOS, you can use the provided shell.nix to get a development environment with all the necessary dependencies.

Run nix-shell shell.nix to enter the development environment.

Alternatively, you can use the provided direnv to automatically enable the environment when you cd into the project root.

Ensure this is inside your configuration.nix:

{
  # Allows the direnv manager to always be available
  programs.direnv = {
    enable = true;
    nix-direnv.enable = true;

    # This ensures the shell integration is loaded for bash/zsh
    enableBashIntegration = true;
    enableZshIntegration = true;
    enableFishIntegration = true;
  };
}

Then restart your terminal, and cd into the project directory and enable direnv by running direnv allow and the environment should work!

Development and Building for Desktop

To build the app, run:

cargo build

Development and Building for Android

Currently, the app supports from android sdk version 26-36 (so, android 8 (oreo) to android 16 (baklava)).

To ensure the functioning of the app, all builds of echelon must be tested on both versions.

Building for android

To build for android, we use Cargo NDK.

Run the following command:

./scripts/android-build.sh [--release|--release-compact] # (Default is debug)

If you are on nix, this is also available as android_build

Running the emulators

The nix shell comes with both emulators ready. To run them, you can run android_emulator_{latest,minimum} based on what you need.

Installing the app

Note

Your APK path might be different based on build type and arch, though you will find your final built APK under android/app/build/outputs/apk folder.

To install the app in the emulator/on your device, you need to first build the app and then run:

adb install -r android/app/build/outputs/apk/release/app-x86_64-release.apk

Debugging

To debug the app, you can use logcat to view the logs.

adb logcat -s 'RustStdoutStderr:* AndroidRuntime:E DEBUG:* *:F'

Slint

Why move away from tauri?

Tauri has been amazing to work with, with their mobile support being huge for us to make this app truly cross-platform.

However, during our development process our goals became more ambitious, with the majority of the team in favour of building with a native UI to maximise our resource efficiency.

Licensed Software

All software used can be found inside THIRD_PARTY_LICENSES.md, or if the URL is broken for some reason;

At static/THIRD_PARTY_LICENSES.md inside this repository.