From 4a63c38f4b06ee06c8bae0b0f8460cef8f09cc32 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Fri, 14 Aug 2020 14:22:34 +0100 Subject: [PATCH] WIP README --- README.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6c668a22..ab12ada8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,22 @@ # Dendrite [![Build Status](https://badge.buildkite.com/4be40938ab19f2bbc4a6c6724517353ee3ec1422e279faf374.svg?branch=master)](https://buildkite.com/matrix-dot-org/dendrite) [![Dendrite Dev on Matrix](https://img.shields.io/matrix/dendrite-dev:matrix.org.svg?label=%23dendrite-dev%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite-dev:matrix.org) [![Dendrite on Matrix](https://img.shields.io/matrix/dendrite:matrix.org.svg?label=%23dendrite%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite:matrix.org) -Dendrite is a second-generation Matrix homeserver written in Go. It is not recommended to use Dendrite as -a production homeserver at this time as there is no stable release. An overview of the design can be found -in [DESIGN.md](docs/DESIGN.md). +Dendrite is a second-generation Matrix homeserver written in Go. It intends to provide a **simple**, **reliable** +and **efficient** replacement for Synapse for small homeservers: + - Simple: packaged as a single binary with minimal required configuration options. + - Reliable: uses the [same test suite](https://github.com/matrix-org/sytest) as Synapse as well as + a [brand new Go test suite](https://github.com/matrix-org/complement). + - Efficient: A small memory footprint with better baseline performance than an out-of-the-box Synapse. + +As of September 2020, Dendrite is now **stable**. This means: + - Dendrite has periodic semver releases. + - Dendrite supports database schema upgrades between versions. + - Breaking changes will not occur on minor releases. + - Dendrite is ready for early adopters. + +This does not mean: + - Dendrite is bug-free. + - All of the CS/Federation APIs are implemented. + - Dendrite is ready for massive homeserver deployments. # Quick start @@ -12,13 +26,13 @@ Requires Go 1.13+ and SQLite3 (Postgres is also supported): $ git clone https://github.com/matrix-org/dendrite $ cd dendrite -# generate self-signed certificate and an event signing key for federation +# Generate self-signed certificate and an event signing key. +# If you want to federate with other homeservers, you need a valid TLS certificate e.g from Let's Encrypt $ go build ./cmd/generate-keys $ ./generate-keys --private-key matrix_key.pem --tls-cert server.crt --tls-key server.key # Copy and modify the config file: -# you'll need to set a server name and paths to the keys at the very least, along with setting -# up the database filenames +# You'll need to set a server name and paths to the keys at the very least. $ cp dendrite-config.yaml dendrite.yaml # build and run the server @@ -33,7 +47,7 @@ Then point your favourite Matrix client at `http://localhost:8008`. For full ins We use a script called Are We Synapse Yet which checks Sytest compliance rates. Sytest is a black-box homeserver test rig with around 900 tests. The script works out how many of these tests are passing on Dendrite and it -updates with CI. As of August 2020 we're at around 52% CS API coverage and 65% Federation coverage, though check +updates with CI. As of August 2020 we're at around 54% CS API coverage and 70% Federation coverage, though check CI for the latest numbers. In practice, this means you can communicate locally and via federation with Synapse servers such as matrix.org reasonably well. There's a long list of features that are not implemented, notably: - Receipts