5e9dce1c0c
* 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 |
||
---|---|---|
.github | ||
appservice | ||
clientapi | ||
cmd | ||
common | ||
docker | ||
docs | ||
eduserver | ||
federationapi | ||
federationsender | ||
hooks | ||
internal/sqlutil | ||
mediaapi | ||
publicroomsapi | ||
roomserver | ||
scripts | ||
syncapi | ||
.editorconfig | ||
.gitignore | ||
.golangci.yml | ||
are-we-synapse-yet.list | ||
are-we-synapse-yet.py | ||
build.sh | ||
CODE_STYLE.md | ||
CONTRIBUTING.md | ||
dendrite-config.yaml | ||
DESIGN.md | ||
go.mod | ||
go.sum | ||
INSTALL.md | ||
LICENSE | ||
p2p.md | ||
README.md | ||
show-expected-fail-tests.sh | ||
sytest-blacklist | ||
sytest-whitelist | ||
WIRING.md |
Dendrite
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.