A Matrix homeserver in Elixir
Eltrix is a homeserver built on the BEAM, where a room is a process and a sync is a parked one. This page is generated from the project's own test status: nothing below is here because somebody wrote it down.
The build fails if this page claims what the tests do not back.
Each line carries a key into status.json, which is generated
from the criteria the project holds itself to. A capability that slips
from finished to partial stops the site compiling until the wording
changes. The list of what is not done is rendered from the same
file, so it cannot be quietly dropped.
What works
-
Accounts and sessions
doneRegistration, login, refreshable access tokens and a real user-interactive authentication handshake. Registration can be closed behind invitations.
-
Rooms and state
doneRooms, membership, power levels and state resolution, on room versions 10, 11 and 12.
-
Sync
doneA four-stream sync token, typing indicators, read receipts, read markers, account data and filters.
-
Messages
doneSending, editing, reactions, redaction, permalinks, aliases and a room directory.
-
End-to-end encryption
doneDevice keys, one-time and fallback keys, to-device messages, cross-signing and device-list change tracking.
-
Key backup
doneServer-side key backup with restore. The backup is encrypted with a key this server never holds.
-
Media
doneUpload, download and thumbnails, stored in object storage rather than on a disk.
-
History visibility
doneEnforced on every read path, by the same code the sync path uses.
-
Rate limiting
donePer-node limits on the endpoints worth limiting.
-
Administration
doneA console and an API, mirrored at the Synapse admin paths so existing tooling works.
-
Horizontal scale
doneMore than one node, with one process per room and per outbound sender across the whole cluster rather than per machine.
What does not, yet
Partial means some of it is built and it is not finished. None means it is not there at all, and asking for it returns a 404 so a client can detect the absence rather than meet a broken feature.
-
Bridges and bots
partial -
Email verification
partial -
Federation
partial -
Moderation tooling
partial -
Presence
partial -
Push notifications
partial -
Server-side search
partial -
Sliding sync
partial -
Spaces
partial -
Threads
partial -
Media at speed
none -
Single sign-on
none -
Voice and video
none
Running it
Registration is by invitation. Before there is an account on this server that is not the operator's, the terms, the privacy policy and a working way to report abuse have to exist — which is why they are published here rather than written when first needed.