Dendrite is a second-generation Matrix homeserver written in Go!
Go to file
Neil Alexander 05e1ae8745
Further room version wiring (#936)
* Room version 2 by default, other wiring updates, update gomatrixserverlib

* Fix nil pointer exception

* Fix some more nil pointer exceptions hopefully

* Update gomatrixserverlib

* Send all room versions when joining, not just stable ones

* Remove room version cquery

* Get room version when getting events from the roomserver database

* Reset default back to room version 2

* Don't generate event IDs unless needed

* Revert "Remove room version cquery"

This reverts commit a170d5873360dd059614460acc8b21ab2cda9767.

* Query room version in federation API, client API as needed

* Improvements to make_join send_join dance

* Make room server producers use headered events

* Lint tweaks

* Update gomatrixserverlib

* Versioned SendJoin

* Query room version in syncapi backfill

* Handle transaction marshalling/unmarshalling within Dendrite

* Sorta fix federation (kinda)

* whoops commit federation API too

* Use NewEventFromTrustedJSON when getting events from the database

* Update gomatrixserverlib

* Strip headers on federationapi endpoints

* Fix bug in clientapi profile room version query

* Update gomatrixserverlib

* Return more useful error if room version query doesn't find the room

* Update gomatrixserverlib

* Update gomatrixserverlib

* Maybe fix federation

* Fix formatting directive

* Update sytest whitelist and blacklist

* Temporarily disable room versions 3 and 4 until gmsl is fixed

* Fix count of EDUs in logging

* Update gomatrixserverlib

* Update gomatrixserverlib

* Update gomatrixserverlib

* Rely on EventBuilder in gmsl to generate the event IDs for us

* Some review comments fixed

* Move function out of common and into gmsl

* Comment in federationsender destinationqueue

* Update gomatrixserverlib
2020-03-27 16:28:22 +00:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Use HeaderedEvents in appservice component (#939) 2020-03-24 15:46:17 +00:00
clientapi Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
cmd Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
common Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
docker Fix dendrite config file location in docker guide (#934) 2020-03-23 11:16:17 +00:00
docs Adding sslmode: disable to sytest server config (#813) 2020-02-11 13:53:00 +00:00
federationapi Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
federationsender Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
mediaapi maintenance: Fix matrix-org#896 use %w format verb to wrap errors (#916) 2020-03-18 12:48:51 +00:00
publicroomsapi p2p: Implement published rooms (#923) 2020-03-19 11:04:08 +00:00
roomserver Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
scripts Move files back if linting fails (#810) 2019-12-25 18:14:58 +00:00
syncapi Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
typingserver Lots of small typo fixes (#737) 2019-07-12 16:43:01 +01:00
.editorconfig Add .editorconfig (#179) 2017-08-05 02:25:40 +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
build.sh Add peer-to-peer support into Dendrite via libp2p and fetch (#880) 2020-03-06 10:23:55 +00:00
CODE_STYLE.md replaced gometalinter description with golangci-lint (#837) 2019-12-25 18:28:10 +00:00
CONTRIBUTING.md Update documentation for Go 1.13 (#867) 2020-02-06 11:54:26 +00:00
dendrite-config.yaml Remove riot.im from the list of trusted ID servers in the default config (#688) 2019-01-31 10:06:11 +00:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
go.sum Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
INSTALL.md Update documentation for Go 1.13 (#867) 2020-02-06 11:54:26 +00:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
p2p.md p2p: Use JSServer for comms rather than GoJsConn (#888) 2020-03-11 12:18:37 +00:00
README.md Kick CI 2020-02-28 14:46:03 +00:00
show-expected-fail-tests.sh Add whitelist/blacklist maintenance complainer to buildkite annotations (#870) 2020-02-14 13:07:14 +00:00
sytest-blacklist Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
sytest-whitelist Further room version wiring (#936) 2020-03-27 16:28:22 +00:00
WIRING.md Document internal APIs and Application Services component (#499) 2018-07-06 02:33:53 -07: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.