Conduit is a simple, fast and reliable chat server powered by Matrix https://conduit.rs
Find a file
gnieto ed9b544ace Implement devices API (#20)
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>
2020-06-03 13:41:30 +02:00
.gitea Add liberapay, change pr template 2020-04-09 00:05:37 +02:00
src Implement devices API (#20) 2020-06-03 13:41:30 +02:00
sytest Black list temporaly some room creation tests. 2020-06-02 13:57:41 +02:00
.gitignore fix: only allow valid usernames in /register 2020-05-13 12:25:15 +02:00
Cargo.lock feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
Cargo.toml feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
LICENSE Add license 2020-04-08 22:28:03 +02:00
README.md feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
Rocket-example.toml feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
rust-toolchain refactor: make cargo clippy happier 2020-05-11 12:34:48 +02:00
rustfmt.toml Use sled::Tree::prefix_search for deviceids 2020-03-30 13:46:18 +02:00

Conduit

A Matrix homeserver written in Rust

Liberapay Matrix

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/