WIP README

This commit is contained in:
Kegan Dougal 2020-08-14 14:22:34 +01:00
parent 6820b3e024
commit 4a63c38f4b

View file

@ -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