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
2020-04-09 00:05:37 +02:00
2020-06-03 13:41:30 +02:00
2020-05-31 09:46:11 +02:00
2020-05-31 09:46:11 +02:00
2020-04-08 22:28:03 +02:00
2020-05-31 09:46:11 +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/

Description
No description provided
Readme 5.3 MiB
Languages
Rust 97.7%
Nix 0.8%
Python 0.7%
Shell 0.5%
Dockerfile 0.3%