harmony

module
v0.0.0-...-6dd005e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2024 License: Apache-2.0

README

Harmony

Harmony is a lighter-weight fork of Dendrite, a second-generation homeserver for the Matrix protocol.

As with Dendrite, supported features include:

  • Core room functionality (creating rooms, invites, auth rules)
  • Room versions 1 to 11 supported
  • Backfilling locally and via federation
  • Accounts, profiles and devices
  • Published room lists
  • Typing
  • Media APIs
  • Redaction
  • Tagging
  • Context
  • E2E keys and device lists
  • Receipts
  • Push
  • Guests
  • User Directory
  • Presence
  • Fulltext search

The primary goal of this fork is to make things simpler and easier to maintain. With that in mind, a number of features have been removed, including SQLite database support, the appservice API, support for 3PIDs, support for OpenID, all P2P and relay-related work, support for the WebAssembly target, phone-home stats and others.

Aside from that, Harmony can largely operate as a drop-in replacement for Dendrite.

Harmony is Apache-2.0 licensed and will remain so.

Documentation

For now, Dendrite's documentation is largely relevant. The configuration format and steps are practically unchanged.

Future

This project may or may not have a long-term future. Let's see how things go.

If it does, then future changes are likely to include refactoring various parts of the codebase, swapping out some parts of the backend storage to make better use of NATS in places where it makes sense, as well as potentially reintroducing the ability to run some components standalone for sharding.

Directories

Path Synopsis
api
auth
Package auth implements authentication checks and storage.
Package auth implements authentication checks and storage.
cmd
api
hooks
Package hooks exposes places in Dendrite where custom code can be executed, useful for MSCs.
Package hooks exposes places in Dendrite where custom code can be executed, useful for MSCs.
api
Package api provides the types that are used to communicate with the roomserver.
Package api provides the types that are used to communicate with the roomserver.
internal/input
Package input contains the code processes new room events
Package input contains the code processes new room events
types
Package types provides the types that are used internally within the roomserver.
Package types provides the types that are used internally within the roomserver.
mscs
Package mscs implements Matrix Spec Changes from https://github.com/matrix-org/matrix-doc
Package mscs implements Matrix Spec Changes from https://github.com/matrix-org/matrix-doc
mscs/msc2836
Package msc2836 'Threading' implements https://github.com/matrix-org/matrix-doc/pull/2836
Package msc2836 'Threading' implements https://github.com/matrix-org/matrix-doc/pull/2836
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL