Dendrite is a second-generation Matrix homeserver written in Go!
Find a file
Hilmar Gústafsson 73d2f59e30
WIP: Add libp2p-go (#956)
* Add libp2p-go

* Some tweaks, tidying up

(cherry picked from commit 1a5bb121f8121c4f68a27abbf25a9a35a1b7c63e)

* Move p2p dockerfile

(cherry picked from commit 8d3bf44ea1bf37f950034e73bcdc315afdabe79a)

* Remove containsBackwardsExtremity

* Fix some linter errors, update some libp2p packages/calls, other tidying up

* Add -port for dendrite-p2p-demo

* Use instance name as key ID

* Remove P2P demo docker stuff, no longer needed now that we have SQLite

* Remove Dockerfile-p2p too

* Remove p2p logic from dendrite-monolith-server

* Inject publicRoomsDB in publicroomsapi

Inject publicRoomsDB instead of switching on base.libP2P.
See: https://github.com/matrix-org/dendrite/pull/956/files?file-filters%5B%5D=.go#r406276914

* Fix lint warning

* Extract mDNSListener from base.go

* Extract CreateFederationClient into demo

* Create P2PDendrite from BaseDendrite

Extract logic specific to P2PDendrite from base.go

* Set base.go to upstream/master

* Move pubsub to demo cmd

* Move PostgreswithDHT to cmd

* Remove unstable features

* Add copyrights

* Move libp2pvalidator into p2pdendrite

* Rename dendrite-p2p-demo -> dendrite-demo-libp2p

* Update copyrights

* go mod tidy

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2020-04-14 16:15:59 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice use custom http client instead of the http DefaultClient (#823) 2020-04-03 11:40:50 +01:00
clientapi support non-exclusive namespaces for AS (#828) 2020-04-14 15:31:27 +01:00
cmd WIP: Add libp2p-go (#956) 2020-04-14 16:15:59 +01:00
common S7evinK: basicauth metrics (#961) 2020-04-14 15:54:35 +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 use custom http client instead of the http DefaultClient (#823) 2020-04-03 11:40:50 +01:00
federationapi Federation for v3/v4 rooms (#954) 2020-04-09 15:46:06 +01:00
federationsender Invites v2 endpoint (#952) 2020-04-03 14:29:06 +01: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 WIP: Add libp2p-go (#956) 2020-04-14 16:15:59 +01:00
roomserver Federation for v3/v4 rooms (#954) 2020-04-09 15:46:06 +01:00
scripts Move files back if linting fails (#810) 2019-12-25 18:14:58 +00:00
syncapi Rename the typing server to EDU server (#948) 2020-03-30 15:02:20 +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 Are we synapse yet? (#960) 2020-04-14 16:05:15 +01:00
are-we-synapse-yet.py Are we synapse yet? (#960) 2020-04-14 16:05:15 +01: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 S7evinK: basicauth metrics (#961) 2020-04-14 15:54:35 +01:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod WIP: Add libp2p-go (#956) 2020-04-14 16:15:59 +01:00
go.sum WIP: Add libp2p-go (#956) 2020-04-14 16:15:59 +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: show-expected-fail-tests.sh ignores # in whitelist and strips quotes in test names in output (#943) 2020-03-31 15:53:09 +01:00
sytest-blacklist Federation for v3/v4 rooms (#954) 2020-04-09 15:46:06 +01:00
sytest-whitelist Federation for v3/v4 rooms (#954) 2020-04-09 15:46:06 +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.