0883c44659
small improvements Cargo fmt Simplify insert and update methods Review feedback Remove has_device method calls Load all devices with a single db call Remove device as in logout Put all metadata on the same tree Create userdevice key fucntion Implement devices API Implement all the devices endpoints. There's a couple of pending tasks: - Integrate the "logout" logic once it lands to master (this should remove the given device from the database). - Track and store last seen timestamp and IP. Co-authored-by: timokoesters <timo@koesters.xyz> Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com> |
||
---|---|---|
.gitea | ||
src | ||
sytest | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
Rocket-example.toml | ||
rust-toolchain | ||
rustfmt.toml |
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 https://riot.conduit.rs and register on the default homeserver. You can also use https://riot.im/app and set the homeserver url to https://conduit.koesters.xyz:14004 to connect. (BUG: Registration currently doesn't work on riot.im. Fix will come soon)
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 (Make Conduit talk to other Matrix servers)
- Notifications (Make Matrix client notify the user when new messages or pings arrive)
- Lots of testing
Also check out the milestones.
How can I contribute?
If you want to help, you may be able to find something in the issue tracker. If you do, comment on the issue, so others know. You can also join #conduit:matrix.org and ask there.
Donate
Liberapay: https://liberapay.com/timokoesters/