Conduit: a Matrix homeserver in Rust that targets a Raspberry Pi
A simple, fast and reliable Matrix server (MIRROR, see https://conduit.rs )
At a glance
- What is it?
- Conduit is a Matrix homeserver written in Rust, aimed at small deployments on a mini computer rather than at a data centre, and it is still in beta with a short list of missing federation features. This repository is a mirror of the GitLab project, which is where the development happens.
- Who is it for?
- Adopt Conduit if you want to run a Matrix homeserver for a family, a small community or a company on one small machine, and you can live with a beta server and a short list of missing federation behaviours. Do not adopt it if every Matrix feature matters to you, since outgoing read receipts, typing and presence over federation and E2EE emoji comparison are listed as missing, and it is not a drop-in replacement for a larger homeserver.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The goal is a homeserver that fits on a mini computer
Conduit is described as an efficient Matrix homeserver that is easy to set up and just works, and the README puts the target device plainly: you can install it on a mini computer like the Raspberry Pi to host Matrix for your family, friends or company.
That framing is the whole design brief, and it explains most of the technical choices. A server sized for a Raspberry Pi has a small memory budget, a single machine operator, and no cluster to coordinate with. The aim is a deployment you leave running rather than one you operate as a service, and the description of the project in the repository adds that it is simple, fast and reliable.
Matrix itself is the open network for secure and decentralized communication, where users on one homeserver can talk to users on every other one. That network property is the reason homeservers exist in a range of sizes at all, and Conduit occupies the small end of it deliberately.
The language is Rust, and the two libraries the README credits are the foundation: Ruma, described as a clean library for the Matrix spec in Rust, and axum, a modular web framework. The licence is Apache-2.0, and the project is hosted under the Famedly and FUTO umbrella with funding acknowledged from the Prototype Fund.
Beta means most rooms work and some federation does not
The status section is direct about where the project stands. Conduit is in Beta, which the README explains means you can join and participate in most Matrix rooms, but not all features are supported and you might run into bugs from time to time.
Then it lists the important features that are still missing, and there are only two lines. E2EE emoji comparison over federation is missing, though E2EE chat itself works. Outgoing read receipts, typing and presence over federation are missing, while the incoming direction works.
Read that list carefully, because it is not a list of missing conveniences. Outgoing read receipts and typing are what make a chat client feel alive, and they are the features most likely to be noticed by users. The asymmetry between incoming and outgoing is a tell that this is a federation implementation in progress rather than a deliberate limitation of scope, since a server that can receive a read receipt but cannot send one is clearly midway through the work.
For a deployment where the community sits mostly on your own homeserver, the missing federation features matter less. For a server whose purpose is to bridge a Matrix network, they matter a great deal.
This repository is a mirror, and the work happens on GitLab
The repository description says it plainly: this is a mirror, and the project to look at is at conduit.rs. The manifest reinforces that, since the repository field points to gitlab.com/famedly/conduit rather than to GitHub.
That detail changes how you should engage with the project. The contribution steps in the README refer to forking the repo, creating a branch, pushing commits and submitting a merge request, and the request to open an issue says to do it on GitLab. The security disclosure instructions also point to two named maintainers on Matrix or to an email address rather than to a GitHub security advisory.
So the practical sequence for a new contributor is to find the GitLab project, pick an issue that nobody is already working on, announce yourself in the Matrix room linked in the README, and then work there. Submitting a pull request to this mirror is not the route the project describes.
The default branch here is called next, which is worth noting because it differs from the main branch naming you may expect, and the presence of a .gitlab-ci.yml, a .gitea/ directory and a .github/ directory shows the CI setup spans several hosting platforms even though the project itself lives on one of them.
A four crate workspace with its own macros and build tasks
The Cargo manifest shows a workspace with four members and a default member of the server itself:
members = ["conduit", "conduit-config", "conduit-macros", "xtask"]The split is conventional and sensible. The conduit crate is the server, conduit-config is the configuration handling, conduit-macros holds procedural macros, and xtask is the usual home for build automation. There is a conduit-example.toml at the repository root, and a conduit-config/ directory, so the configuration format has both a standalone example and its own crate.
The toolchain requirements are stated in the manifest and pinned in a file. The edition is 2024, the minimum supported Rust version is 1.89.0, and rust-toolchain.toml is referenced in a comment next to the version. Clippy lints are configured at the workspace level, with cloned_instead_of_copied, dbg_macro and str_to_string set to warn, and unused_qualifications and explicit_outlives_requirements warned on the rust side.
The release profile shows attention to binary size and speed at once, with thin link time optimisation, 32 codegen units, and a build override that maximises optimisation for dependencies. That matches the goal of running a homeserver on small hardware, since a leaner binary is a smaller resident footprint and faster startup.
The dependency list includes ruma at 0.17 for the Matrix protocol, reqwest for HTTP, clap for the command line, serde and serde_json for configuration and data, and rusty-s3 for object storage, which is the part that lets a homeserver keep media outside its own disk.
You can try the hosted instance before installing anything
The README offers a public test instance, and the details are specific enough to be useful. You open a client that supports registration tokens, with Element web, Nheko and SchildiChat web all named, and you register on the conduit.rs homeserver. The registration token is for_testing_only. Once registered, you can use any other Matrix client to log in.
The warning attached to it is the important part: do not share personal information. A public registration token on an open server is a shared space, and the token is published in the README, so anyone can get in.
Hosting for the conduit.rs instance is donated by the Matrix.org Foundation, and the project lists the demo instance separately from the software. Using it tells you how the server behaves with real traffic, which is a reasonable way to find out whether its feature gaps matter for your community before you commit to running one yourself.
For a real deployment the README points at the Conduit documentation and at docs/introduction.md in the repository, and the top level of the tree backs that up: a book.toml for the documentation site, a docs folder, a debian folder for packaging, a default.nix and flake.nix for Nix, a flake.lock, and a tests folder alongside a complement/ folder, which is the Matrix compliance test suite.
A beta server with a security contact and a real funding base
Two things in the README tell you the project is more than a hobby, and one tells you where the risk sits.
The project asks you to send security issues to two maintainers on Matrix or to the email address, and asks you not to disclose details to anyone else before a fix is released publicly. That is a responsible disclosure policy written in two sentences, and it means a vulnerability report goes to a person rather than into a public tracker.
The funding and support picture is broad. The README thanks FUTO, Famedly, the Prototype Fund and individual supporters, and it lists the maintainers by name, Timo and Matthias, along with a Matrix room for questions and a direct message address. There is a code of conduct, a typos.toml and a taplo.toml for formatting configuration files, and CI configuration in .gitlab/ and .github/. The repository is not archived, the last push was on 2026-10-18, and it publishes no GitHub releases, so version tracking happens on GitLab.
The combination of a small feature gap, a security contact and a funded organisation is a reasonable profile for a beta homeserver aimed at small deployments. The main thing to check before depending on it is whether the missing federation features affect the community you want to serve.
Editorial conclusion
Adopt Conduit if you want to run a Matrix homeserver for a family, a small community or a company on one small machine, and you can live with a beta server and a short list of missing federation behaviours. Do not adopt it if every Matrix feature matters to you, since outgoing read receipts, typing and presence over federation and E2EE emoji comparison are listed as missing, and it is not a drop-in replacement for a larger homeserver. Before you deploy, read the Conduit documentation and the introduction document in the docs folder, and note that the canonical repository is on GitLab, so issues and merge requests belong there rather than on this mirror.
Frequently asked questions
What is Conduit?
Conduit is a Matrix homeserver written in Rust, designed to be efficient and easy to set up on a small machine such as a Raspberry Pi, for hosting Matrix for a family, friends or a company. It is built on Ruma for the Matrix spec and axum as the web framework, and is licensed under Apache-2.0.
Is Conduit ready for production use?
The README calls it Beta: you can join and participate in most Matrix rooms, but not all features are supported and you may hit bugs. It lists E2EE emoji comparison over federation and outgoing read receipts, typing and presence over federation as still missing.
Where do I report bugs or contribute to Conduit?
This GitHub repository is a mirror, and the canonical project is on GitLab at gitlab.com/famedly/conduit. The README asks contributors to pick an issue nobody is working on, announce themselves in the Matrix room, fork the GitLab repo and submit a merge request, and it points issue creation at GitLab.
Can I try Conduit before installing it?
Yes. You can register on the conduit.rs homeserver from a client that supports registration tokens, using the token for_testing_only, and the README warns not to share personal information there. Hosting for that instance is donated by the Matrix.org Foundation.
How do I report a security issue in Conduit?
The README asks you to message Timo or Matthias on Matrix, or email the project address, and not to disclose details to anyone else before a fix is released publicly.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/timokoesters-conduit)Was this useful?