Awesome Matrix
A curated list of things related to the Matrix ecosystem, including software, research, etc. Matrix is an open protocol for secure, decentralized data stores with a focus on communication.
This list hopes to become a good place for finding projects that may not have an obvious category to fit into on the matrix.org website.
Contents
- Annotation
- Blogs
- Bots
- Bridges
- Clients
- Collaborative Documents
- Collaborative Maps
- Comments
- Encryption
- Factoids
- Research
- SDKs
- Servers
- Social Media
- Testing
- Widgets
Annotation
- Populus-Viewer - Social
annotation of PDFs, powered by Matrix.
(Repo,
Chat)
GPL-3.0
JavaScript
- Matrix Highlight -
Matrix-based collaborative web annotation.
(Repo,
Chat)
Apache-2.0
TypeScript
Blogs
- matrix-blog - A library
to interact with a Matrix server in a way that treats it as a backend for a
blog. (Repo,
Chat)
MIT
TypeScript
Bots
Multi Purpose Bot Platforms
- maubot - A plugin-based Matrix bot system with over 30
plugins for all sorts of things. (Repo,
Chat)
AGPL-3.0
Python
- opsdroid - A flexible multi-platform chat bot
framework with Matrix support including end to end encryption.
(Repo,
Chat)
Apache-2.0
Python
Single Purpose Bots
Some bots are quick scripts tailored to a specific purpose.
Bridges
Clients
For a comprehensive list with many more clients along with screenshots, the Matrix clients table is a good resource.
- Element - A glossy client with an emphasis on
performance and usability. (Web,
iOS,
Android)
Apache-2.0
TypeScript
,Swift
,Kotlin
- FluffyChat - Cute instant messaging
app for all platforms. (Chat)
AGPL-3.0
Flutter
- Ditto - React Native client for iOS and
Android. (Chat)
GPL-3.0
JavaScript
- Safesupport chatbox - Embeddable Matrix chatbox.
- Fractal - A client for GNOME
written in Rust. (Chat)
GPL-3.0
Rust
Collaborative Documents
- matrix-notepad - A buggy way to
collaborate on text documents using the Matrix protocol.
(Repo,
Chat)
GPL-3.0
JavaScript
- TheBoard - Collaborative whiteboard
powered by Matrix. (Repo,
Chat)
MIT
JavaScript
- Collabs -
A collections library for collaborative data structures.
Apache-2.0
TypeScript
- Matrix CRDT - Integrates CRDTs like
Yjs with Matrix for storage and sync.
MPL-2.0
TypeScript
Collaborative Maps
- ODIN - Defence Command and Control Information System (C2IS):
It's built on Open Layers, React and Electron
and uses Matrix in order to replicate the state of the symbols (MIL-STD-2525C) drawn on the map.
ODIN is an offline-first application and uses LevelDB to persist state locally. At the lowest
level LevelDB operations are replicated. (Repo, Chat)
AGPL-3.0
JavaScript
Comments
- Cactus Comments - Federated, web-embeddable comment
system for the open web built on Matrix.
(Repo,
Chat)
GPL-3.0
Elm
,Python
Encryption
- Olm -
Implementation of the Olm and Megolm cryptographic ratchets.
Apache-2.0
C++
- pantalaimon -
E2EE aware proxy daemon for Matrix clients.
(Chat)
Apache-2.0
Python
Factoids
- Matrix Limits - A collection of various limits and related factoids about the Matrix specification and implementations.
Research
Research papers and similar documents studying something related to Matrix.
2021
- Matthew Weidner, Martin Kleppmann, Daniel Hugenroth, Alastair R. Beresford. Key Agreement for Decentralized Secure Group Messaging with Strong Security Guarantees.
- Florian Jacob, Carolin Beer, Norbert Henze, Hannes Hartenstein. Analysis of the Matrix Event Graph Replicated Data Type.
2020
- Florian Jacob, Luca Becker, Jan Grashöfer, Hannes Hartenstein. Matrix Decomposition: Analysis of an Access Control Approach on Transaction-based DAGs without Finality.
- Martin Kleppmann, Heidi Howard. Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases.
2019
- Florian Jacob, Jan Grashöfer, Hannes Hartenstein. A Glimpse of the Matrix: Scalability Issues of a New Message-Oriented Data Synchronization Middleware.
- Matthew Weidner. Group Messaging for Secure Asynchronous Collaboration.
- Quirin Heiler, Richard von Seck, Jonas Jelten. Peer-to-Peer Matrix.
2018
- Katriel Cohn-Gordon, Cas Cremers, Luke Garratt, Jon Millican, Kevin Milner. On Ends-to-Ends Encryption: Asynchronous Group Messaging with Strong Security Guarantees.
2016
- Ksenia Ermoshina, Francesca Musiani, Harry Halpin. End-to-End Encrypted Messaging Protocols: An Overview.
SDKs
- matrix-rust-sdk - A modular
SDK for writing Matrix clients, written in Rust. Implements Matrix E2EE in
a separate crate with a sans I/O design.
Apache-2.0
Rust
- SimpleMatrixClient -
Lightweight, zero dep client library written in TypeScript.
MIT
TypeScript
- Matrix Client API - A bespoke and well focused
SDK for ODIN. Since it's lightweight and well structured it might be useful for beginners to explore how the Matrix API works.
MIT
JavaScript
Servers
- Synapse - The reference homeserver.
(Chat)
Apache-2.0
Python
- Dendrite - A second-generation
Matrix homeserver written in Go. It intends to provide an efficient, reliable
and scalable alternative. (Chat)
Apache-2.0
Go
- Conduit - A simple, fast and reliable chat server
written in Rust. (Repo,
Chat)
Apache-2.0
Rust
- hghs - Lightweight
Matrix homeserver for special purposes which compiles as a single file with
zero dependencies, except NodeJS.
MIT
TypeScript
Social Media
- Circles - E2E encrypted social
networking built on Matrix. Safe, private sharing for your friends, family,
and community. (Repo)
AGPL-3.0-only
Swift
- MinesTRIX - A privacy focused social media
based on Matrix. (Repo)
AGPL-3.0-or-later
Flutter
Testing
- Patience - Full stack integration
testing for Matrix clients and servers.
(Chat)
Apache-2.0
TypeScript
Widgets
- matrix-widget-api - A widget
API abstraction for browsers. (Chat)
Apache-2.0
TypeScript
- matrix-widget-debug - Test
widget for validating clients and
matrix-widget-api
.Apache-2.0
JavaScript
See Also
Various other directories and lists of Matrix things.
- Try Matrix Now - Comprehensive directory of various Matrix projects.
- Matrix clients table - Thorough list of many more Matrix clients along with screenshots.
- @rodolpheh's awesome-matrix - An earlier effort at assembling awesome Matrix projects.
Contribute
Contributions welcome!
License
Creative Commons Attribution 4.0 International