24b6702047
When creating some responses (sync) an AnyRoomEventStub is needed for this PduEvent will deserialize the JSON as a Stub event and a non stub event when needed. Ephemeral and account events are checked to be the correct type and filtered out if not. This requires an extra `deserialize` call which could/should be removed. TODO: Possibly get rid of EventJson in some places. |
||
---|---|---|
.gitea | ||
src | ||
sytest | ||
.gitignore | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
Rocket-example.toml | ||
rust-toolchain | ||
rustfmt.toml |
README.md
Conduit
A Matrix homeserver written in Rust
What is the goal
A fast Matrix homeserver that's easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.
Is it fast?
See it in action: https://www.youtube.com/watch?v=HoBslDtqC1k
Can I try it out?
Yes! Just open a Matrix client (https://app.element.io or Element Android for example) and register on the https://conduit.koesters.xyz
homeserver.
How can I deploy my own?
You just have to clone the repo, build it with cargo build --release
and call the binary (target/release/conduit) from somewhere like a systemd script.
It's explained in more detail here.
What is it build on?
- Ruma: Useful structures for endpoint requests and responses that can be (de)serialized
- Sled: A simple (key, value) database with good performance
- Rocket: A flexible web framework
What are the biggest things still missing?
- Federation (Talk to other Matrix servers)
- Appservices (Bridges and Bots)
- Push notifications on mobile
- Notification settings
- Lots of testing
Also check out the milestones.
How can I contribute?
- Look for an issue you would like to work on and make sure it's not assigned to other users
- Ask someone to assign the issue to you (comment on the issue or chat in #conduit:matrix.org)
- Fork the repo and work on the issue. #conduit:matrix.org is happy to help :)
- Submit a PR
Donate
Liberapay: https://liberapay.com/timokoesters/
Bitcoin: bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n