eunha
Rust re-implementation of Mastodon, with drop-in database compatibility.
Eunha aims for 100% Mastodon database schema compatibility, so that Eunha can be a drop-in replacement on top of your existing Mastodon database.
We track the latest Mastodon release, and provide migration path from old Eunha database schema to updated Mastodon database schema.
It's not Eunha's goal to completely mimic Mastodon's feature set or its implementation detail, and Eunha may contain behavioral differences.
Running eunha
- The first account: creating an instance's owner from the command line, as
tootctl accounts createdoes. - Migrations:
eunha migrate, and why starting the server does not apply them. - Shared Redis: key prefixes, ACLs and a separate coordination pool for deployments that share Redis.
- Several instances in one process: serving a directory of tenants, the limits that keep them apart, and reloading on
SIGHUP. - Invites: who may invite, and handing invites out to members.
- Update notices: the optional update check.
Mastodon compatibility
- Tracking Mastodon: the schema check, and adopting a new Mastodon release.
- Signing keys and HTTP signatures.
- API entity parity, differential testing and federating with a live Mastodon: the harnesses that check eunha against upstream.
- Deliberate divergences from Mastodon, and what is outstanding from 4.7.1.
Design
- Protocol extension: where ActivityPub scales badly and what eunha designs for it.
- Hosted tenancy plan: the plan for hosting many instances.
- Benchmarking: what a small instance costs, and what sharing a process saves.
- Contributing and where to pick this up.