Dendrite is a second-generation Matrix homeserver written in Go!
Go to file
Kegsay 4c1e6597c0
Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174)
* Use content_value instead of membership

* Fix build

* Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver

- All public rooms paths are now handled by clientapi
- Requests to (un)publish rooms are sent to the roomserver via `PerformPublish`
  which are stored in a new `published_table.go`
- Requests for public rooms are handled in clientapi by:
    * Fetch all room IDs which are published using `QueryPublishedRooms` on the roomserver.
    * Apply pagination parameters to the slice.
    * Do a `QueryBulkStateContent` request to the currentstateserver to pull out
      required state event *content* (not entire events).
    * Aggregate and return the chunk.

Mostly but not fully implemented (DB queries on currentstateserver are missing)

* Fix pq query

* Make postgres work

* Make sqlite work

* Fix tests

* Unbreak pagination tests

* Linting
2020-07-02 15:41:18 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Move account/device DBs to userapi (#1141) 2020-06-17 12:05:56 +01:00
build Fix Yggdrasil gobind build, set display name at registration 2020-07-01 13:35:58 +01:00
clientapi Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
cmd Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
currentstateserver Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
docs User API polylith component (#1151) 2020-06-19 09:37:19 +01:00
eduserver BREAKING: Make eduserver/appservice use userapi (#1138) 2020-06-16 17:39:56 +01:00
federationapi Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
federationsender Persistent federation sender queues (PDUs) (#1173) 2020-07-01 11:46:38 +01:00
internal Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
keyserver Hacks for supporting Riot iOS (#1148) 2020-06-17 17:41:45 +01:00
mediaapi Fallback parsing for Content-Disposition minefield (#1144) 2020-06-17 14:26:45 +01:00
publicroomsapi Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00
roomserver Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
serverkeyapi More server key updates, tests (#1129) 2020-06-16 13:11:20 +01:00
syncapi Implement /sync limited and read timeline limit from stored filters (#1168) 2020-06-26 15:34:41 +01:00
userapi Fix Yggdrasil gobind build, set display name at registration 2020-07-01 13:35:58 +01:00
.dockerignore Docker Hub (#1053) 2020-05-21 13:02:28 +01:00
.gitignore Support embedding Riot Web (#1113) 2020-06-11 10:16:46 +01:00
.golangci.yml Get room versions from database (#918) 2020-03-17 18:00:10 +00:00
are-we-synapse-yet.list Update awsy list 2020-06-30 10:26:26 +01:00
are-we-synapse-yet.py Fix div 0 error and add new tests to list 2020-06-26 11:34:25 +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 Add a new component: currentstateserver (#1171) 2020-06-30 10:37:21 +01:00
go.mod Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +01:00
go.sum Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +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 Make same membership transitions 403, add sytests (#1161) 2020-06-24 18:19:14 +01:00
sytest-whitelist Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver (#1174) 2020-07-02 15:41:18 +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.