Dendrite is a second-generation Matrix homeserver written in Go!
Go to file
Neil Alexander a5d822004d
Send-to-device support (#1072)
* Groundwork for send-to-device messaging

* Update sample config

* Add unstable routing for now

* Send to device consumer in sync API

* Start the send-to-device consumer

* fix indentation in dendrite-config.yaml

* Create send-to-device database tables, other tweaks

* Add some logic for send-to-device messages, add them into sync stream

* Handle incoming send-to-device messages, count them with EDU stream pos

* Undo changes to test

* pq.Array

* Fix sync

* Logging

* Fix a couple of transaction things, fix client API

* Add send-to-device test, hopefully fix bugs

* Comments

* Refactor a bit

* Fix schema

* Fix queries

* Debug logging

* Fix storing and retrieving of send-to-device messages

* Try to avoid database locks

* Update sync position

* Use latest sync position

* Jiggle about sync a bit

* Fix tests

* Break out the retrieval from the update/delete behaviour

* Comments

* nolint on getResponseWithPDUsForCompleteSync

* Try to line up sync tokens again

* Implement wildcard

* Add all send-to-device tests to whitelist, what could possibly go wrong?

* Only care about wildcard when targeted locally

* Deduplicate transactions

* Handle tokens properly, return immediately if waiting send-to-device messages

* Fix sync

* Update sytest-whitelist

* Fix copyright notice (need to do more of this)

* Comments, copyrights

* Return errors from Do, fix dendritejs

* Review comments

* Comments

* Constructor for TransactionWriter

* defletions

* Update gomatrixserverlib, sytest-blacklist
2020-06-01 17:50:19 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Miscellaneous fixes (#1060) 2020-05-26 14:41:16 +01:00
build Add Dockerfile for building p2p riot 2020-05-29 21:01:58 +01:00
clientapi Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
cmd Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
docs Update p2p docs 2020-05-27 09:39:26 +01:00
eduserver Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
federationapi Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
federationsender fedsender: de-duplicate without sorting server names (#1073) 2020-05-29 13:50:06 +01:00
internal Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
keyserver Separate muxes for public and internal APIs (#1056) 2020-05-22 11:43:17 +01:00
mediaapi dendritejs tweaks for persisting sqlite DBs (#1058) 2020-05-22 12:28:48 +01:00
publicroomsapi p2p: de-dupe and shuffle public rooms; implement keydb (#1074) 2020-05-29 15:34:15 +01:00
roomserver Merge Updater structs (#1069) 2020-05-28 11:15:21 +01:00
serverkeyapi Parse URIs correctly 2020-05-28 12:28:21 +01:00
syncapi Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
.dockerignore Docker Hub (#1053) 2020-05-21 13:02:28 +01:00
.gitignore Update .gitignore 2020-03-10 11:42:40 +00:00
.golangci.yml Get room versions from database (#918) 2020-03-17 18:00:10 +00:00
are-we-synapse-yet.list Direct messages (#1012) 2020-05-07 16:46:11 +01:00
are-we-synapse-yet.py Are we synapse yet? (#960) 2020-04-14 16:05:15 +01:00
build-dendritejs.sh Bake in git commit into dendritejs binary (#1048) 2020-05-19 16:42:30 +01:00
build.sh Unbreak the wasm build (#986) 2020-04-28 16:22:00 +01:00
dendrite-config.yaml Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
go.mod Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
go.sum Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
README.md Update INSTALL.md, move docs (#1034) 2020-05-14 16:49:18 +01:00
show-expected-fail-tests.sh Fix newlines between white/blacklist test names in buildkite annotations (#1003) 2020-05-04 14:48:49 +01:00
sytest-blacklist Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00
sytest-whitelist Send-to-device support (#1072) 2020-06-01 17:50:19 +01:00

Dendrite Build Status Dendrite Dev on Matrix Dendrite on Matrix

Dendrite will be a second-generation Matrix homeserver written in Go.

It's still very much a work in progress, but installation instructions can be found in INSTALL.md. It is not recommended to use Dendrite as a production homeserver at this time.

An overview of the design can be found in DESIGN.md.

Contributing

Everyone is welcome to help out and contribute! See CONTRIBUTING.md to get started!

Please note that, as of February 2020, Dendrite now only targets Go 1.13 or later. Please ensure that you are using at least Go 1.13 when developing for Dendrite.

Discussion

For questions about Dendrite we have a dedicated room on Matrix #dendrite:matrix.org. Development discussion should happen in #dendrite-dev:matrix.org.

Progress

There's plenty still to do to make Dendrite usable! We're tracking progress in a project board.