A (soon to be) multiplatform self-hosted chat application built completely in Rust.
Features | Desktop | Mobile |
---|---|---|
Encrypted messages ensuring security | ✅ | ✅ |
Backend which doesn't rely on any central provider | ✅ | ✅ |
Customizable profiles | ✅ | ✅ |
Text, audio, image, file messages, and images | ✅ | ✅ |
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, and has known flaws.
- Windows installer (Using a Visual Studio project)
- Wincam (Used to capture images from the host's camera)
- Protocol Showcase (Used to showcase 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.
- 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)
- Navigate to
desktop/Installer
in 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+b
key 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)
Feel free to chat in the official Matthias discord server!
When wanting to install both, start by opening up the smaller file (Dependency installer), it will automatically open up the application installer.
Github actions:
- The predecessor of Matthias was ChatApp