Dendrite is a second-generation Matrix homeserver written in Go!
Go to file
Kegsay 5e9dce1c0c
syncapi: Rename and split out tokens (#1025)
* syncapi: Rename and split out tokens

Previously we used the badly named `PaginationToken` which was
used for both `/sync` and `/messages` requests. This quickly
became confusing because named fields like `PDUPosition` meant
different things depending on the token type. Instead, we now have
two token types: `TopologyToken` and `StreamingToken`, both of
which have fields which make more sense for their specific situations.

Updated the codebase to use one or the other. `PaginationToken` still
lives on as `syncToken`, an unexported type which both tokens rely on.
This allows us to guarantee that the specific mappings of positions
to a string remain solely under the control of the `types` package.
This enables us to move high-level conceptual things like
"decrement this topological token" to function calls e.g
`TopologicalToken.Decrement()`.

Currently broken because `/messages` seemingly used both stream and
topological tokens, though I need to confirm this.

* final tweaks/hacks

* spurious logging

* Review comments and linting
2020-05-13 12:14:50 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Limit database connections (#980, #564) (#998) 2020-05-01 13:34:53 +01:00
clientapi Direct messages (#1012) 2020-05-07 16:46:11 +01:00
cmd Add PPROFLISTEN (#1019) 2020-05-11 18:21:39 +01:00
common Add PPROFLISTEN (#1019) 2020-05-11 18:21:39 +01:00
docker Rename the typing server to EDU server (#948) 2020-03-30 15:02:20 +01:00
docs Update guides for running sytest (#958) 2020-04-12 13:48:24 +01:00
eduserver Fix sarama import URLs (#856) 2020-04-22 15:26:56 +01:00
federationapi Implement /get_missing_events (#1022) 2020-05-12 16:24:28 +01:00
federationsender Fix 'input to Unique() must be sorted' panic 2020-05-07 17:14:32 +01:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
internal/sqlutil Limit database connections (#980, #564) (#998) 2020-05-01 13:34:53 +01:00
mediaapi Enforce mediaIDRegex to be only valid mediaIDCharacters (#1020) 2020-05-13 12:04:54 +01:00
publicroomsapi Limit database connections (#980, #564) (#998) 2020-05-01 13:34:53 +01:00
roomserver Implement /get_missing_events (#1022) 2020-05-12 16:24:28 +01:00
scripts Move files back if linting fails (#810) 2019-12-25 18:14:58 +00:00
syncapi syncapi: Rename and split out tokens (#1025) 2020-05-13 12:14:50 +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
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.sh Unbreak the wasm build (#986) 2020-04-28 16:22:00 +01: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 Add registration_disabled to dendrite-config.yaml (#1013) 2020-05-08 12:00:32 +01:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod Update gomatrixserverlib for even more memory-efficient state res v2 2020-05-11 16:43:50 +01:00
go.sum Update gomatrixserverlib for even more memory-efficient state res v2 2020-05-11 16:43:50 +01: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 Fix newlines between white/blacklist test names in buildkite annotations (#1003) 2020-05-04 14:48:49 +01:00
sytest-blacklist Move /room/{roomID}/state endpoints into client API (#606) (#962) 2020-04-14 18:36:08 +01:00
sytest-whitelist Update sytest-whitelist 2020-05-12 17:49:04 +01:00
WIRING.md Rename the typing server to EDU server (#948) 2020-03-30 15:02:20 +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.