- Elixir 100%
| config | ||
| lib | ||
| priv | ||
| test | ||
| .formatter.exs | ||
| .gitignore | ||
| AUTHORS | ||
| LICENSE | ||
| manifest.scm | ||
| mix.exs | ||
| mix.lock | ||
| README.org | ||
Bromal
Overview
Bromal is a lightweight opensource messaging server, that uses the Matrix protocol. It is being developed for the efficient deployment of federated messaging systems with modest resource requirements, as a result, it could be deployed even on small servers, including VPS, without sacrificing essential functionality. The project aims to support server-to-server federation, state resolution for different room versions, end-to-end encryption, a full-featured messaging module, built-in VoIP, automatic TLS certificate acquisition via Let's Encrypt using the ACME protocol, as well as the ability to create a cluster for larger installations.
Fun fact
Bromal is being developed on RISC-V OrangePi RV2 SBC running Guix System.
Current status
This software is under active development. It is half-baked and currently not suitable for any production usage:
- Not suitable for any kind of usage except for hacking.
- Internal architecture is subject to change.
- Lacks most important features.
- Federation is supported, but no PDUs (there is a primary support for it).
- No database migrations; schema changes frequently and suddenly.
- Test coverage is not 100% and may sometimes be outdated.
- Code in various components is not optimal and will be refactored sooner or later.
- etc.
Requirements
Bromal currently depends on the following packages:
- Elixir 1.15+
- Erlang 26+
- PostgreSQL 15+
- ImageMagick (for image manipulation)
Build instructions
mix deps.get
mix compile
Run tests
Bromal tests require access to a PostgreSQL database, so it must be properly installed and configured beforehand. Tests can then be executed as usual:
mix test
Under Guix System
Guix System packaging (vendoring support as in Rust packages) currently is baking here: https://codeberg.org/guix/guix/pulls/3524
guix install bromal
;; TODO
Contributions
Contributions are always welcome, however they are always welcome without ANY use of generative AI/LLMs.
Sponsors
Bromal is funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet Bromal page.
Many thanks to them! ❤️
License
Bromal is licensed under the AGPLv3 or later. Please consult the LICENSE
file for more details.