a25d477cdb
* Initial syncapi storage refactor to share pq/sqlite code This goes down a different route than https://github.com/matrix-org/dendrite/pull/985 which tried to even reduce the boilerplate of `ExecContext` etc. The previous pattern fails badly when there are subtle differences in parameters and hence the shared boilerplate to read from `QueryContext` breaks. Rather than attacking it at that level, the main place where we want to reuse code is for the `syncserver.go` itself - the database implementation which has lots of complex logic. So instead, this commit: - Makes `invites_table.go` an interface. - Makes `SyncServerDatasource` use that interface - This means some functions are now identical for pq/sqlite, so factor them out to a temporary `shared.Database` struct which will grow until it replaces all of `SyncServerDatasource`. * Missing files |
||
---|---|---|
.github | ||
appservice | ||
clientapi | ||
cmd | ||
common | ||
docker | ||
docs | ||
eduserver | ||
federationapi | ||
federationsender | ||
hooks | ||
internal/sqlutil | ||
mediaapi | ||
publicroomsapi | ||
roomserver | ||
scripts | ||
syncapi | ||
.editorconfig | ||
.gitignore | ||
.golangci.yml | ||
CODE_STYLE.md | ||
CONTRIBUTING.md | ||
DESIGN.md | ||
INSTALL.md | ||
LICENSE | ||
README.md | ||
WIRING.md | ||
are-we-synapse-yet.list | ||
are-we-synapse-yet.py | ||
build.sh | ||
dendrite-config.yaml | ||
go.mod | ||
go.sum | ||
p2p.md | ||
show-expected-fail-tests.sh | ||
sytest-blacklist | ||
sytest-whitelist |
README.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.