Bentheburrito / radio_beam

A WIP Matrix homeserver, powered by the BEAM
GNU Affero General Public License v3.0
1 stars 0 forks source link

RadioBeam

RadioBeam Logo

An easily deployable, scalable Matrix homeserver powered by the BEAM, currently in early development.

Goals

1. Full spec compliance

As RadioBeam is currently in early development, the first and foremost goal is to reach full compliance with the latest Matrix specification (as of writing, v1.11). This includes passing test suites such as Complement.

After achieving (and maintaining) core spec compliance, additional unstable modules (like those described in Matrix 2.0) may also be implemented before they are fully stabilized in the spec.

2. Straight-forward single-user deployment

Once RadioBeam is spec compliant, building out admin tooling and a deployment process is the planned next step. I primarily want to make sure small (single-user or friends & family) deployments are a nice out-of-the-box experience by supplying great documentation, shipping with secure defaults, and giving admins the tooling needed to effectively manage their instance.

3. Support for large/horizontally scaled deployments

One of my goals/challenges for this project is implementing as much as possible without leaving the VM, primarily to play with Mnesia and Erlang distribution. While this restriction is mainly for fun, it provides an opportunity to build a distributed homeserver in the longer term.

Status

RadioBeam is in early development (pursuing goal #1). I'm currently working on implementing the Client-Server API in my free time. Contributions are welcome, especially from fellow Elixir, Erlang, or Matrix enthusiasts :)

I will be adding issues to create a rough roadmap, and am happy to assign an open issue to you if you leave a comment. Please also give Development Philosophy below a quick read before contributing.

Development Philosophy

Because I'd like to see this project progress to at least the first couple of Goals, development will be on the slower side in the name of creating a sustainable codebase. By "sustainable" I mean:

The result, I hope, will be a more reliable homeserver with a codebase that is nice to work in and has little tech debt.