Matrust: A Matrix Client in Rust + Slint

I’ve just started a new open-source project called Matrust (naming things isn’t my strong suit 😅).

The Goal

The idea is to build a Matrix client (https://matrix.org) using:

But why this stack—especially when I have over 20 years of experience with C++ and Qt?

Why Rust + Slint?

Love it or hate it, Rust is one of the most exciting languages around today—safe, fast, and supported by a strong ecosystem.

As for Slint, I see it as a modern and lightweight alternative to Qt/QML, with a fresh take on UI development, especially in the Rust world.

So I thought: why not build a learning path, like I previously did for SwiftUI, but this time with Rust + Slint—on a real project?

This is a learning journey for me too—it’s the first time I’m combining these three technologies.

Current Status

The project is in a very early stage. At the moment, Matrust supports:

  • Logging in
  • Receiving messages from a test Matrix server

It’s basically a first commit. What’s in the repo today will likely evolve—or be completely rewritten—as the design and architecture solidify.

A Guide for Developers

I’ll be documenting every step of the process, to build a resource for:

  • Rust or Slint beginners
  • Developers curious about building a Matrix client
  • Anyone who, like me, prefers learning by building real things

What’s Next

One of the upcoming posts will walk through setting up a local Matrix server using Docker. That way, we’ll have all the components running locally, making development and testing easier and more consistent.


The repo:

https://github.com/niqt/matrust