MA
marci1175/Matthias
A chat-room like messaging app, built in pure rust.
Matthias
A (soon to be) multiplatform self-hosted chat application built completely in Rust.
Features
| Features | Desktop | Mobile |
|---|---|---|
| Encrypted messages ensuring security | ✅ | ✅ |
| Doesn't rely on any central provider | ✅ | ✅ |
| Customizable profiles | ✅ | ✅ |
| Text, audio, image, file messages | ✅ | ✅ |
| Custom emojis | ✅ | ✅ |
| Intuitive user interface | ✅ | ✅ |
| Experimental MD (Markdown) support | ✅ | ✅ |
| Voice calls | ✅ | ❌ |
| Extensive lua (using luajit) API with documentation at Gitbook with external libs available | ✅ | ❌ |
| Custom connection urls (If the app is installed through the installer) This allows the user to connect to a server with just a link | ✅ | ❌ |
Disclaimer: The application has never been security audited.
Additional Features (For desktop only):
- Windows installer (Using a Visual Studio project)
Children repositories (Crates/Repos created for the purpose of showcasing/improving Matthias)
- Wincam (Used to capture images from the host's camera)
- Protocol Demo (Used to develop Matthias's TCP protocol)
- mLua proc macro (Used in creating the lua API)
All this with great performance, due to the project being multi-threaded, using async calls with egui, and many more!
I have also tried to make my codebase futureproof by implementing custom automatizations (Example: code generating for emojis) and custom proc macros.
How to compile:
- First, you must have the Rust compiler installed on your computer with all of its dependencies.
- The next step is to download the source code of this project. (whether that be git cloning or downloading it from github's website)
- Navigate to the source folder and run
cargo r --release(Or without --release for debugging) - Please note that some features may not be available when running the application after compilation (For links to work you must "install" the application through the installer provided)
How to create an installer (Note: You must have the Visual Studio installed for this):
- Navigate to
desktop/Installerin the project folder, and open up the Matthias.sln file. - Click on build on the top menu bar and click Build Solution (Or use the
ctrl+shift+bkey combination) - After building go to
desktop/Installer/MatthiasSetup/Release/and you will find two files:- One containing the dependencies (Smaller file size)
- One containing the application itself (Bigger file size)
Community
Feel free to chat in the official Matthias discord server!
Preview
Lua API
Messages
Register page
When wanting to install both, start by opening up the smaller file (Dependency installer), it will automatically open up the application installer.
Github actions:
Documentation
The Documentation of the public API is available here.
Legacy
- The predecessor of Matthias was ChatApp
On this page
Languages
Rust99.3%Java0.3%Shell0.3%Batchfile0.1%RenderScript0.0%
Mozilla Public License 2.0
Created October 4, 2023
Updated December 22, 2025


