Matrix (communication protocol)
|Purpose||Federated messaging and data synchronization|
|Based on||HTTP, WebRTC|
|OSI layer||Application layer|
Matrix is an open protocol for real-time communication. It is designed to allow users with accounts at one communications service provider to communicate with users of a different service provider via online chat, Voice over IP, and Videotelephony. That is, it aims to make real-time communication work seamlessly between different service providers, just like standard Simple Mail Transfer Protocol email does now for store-and-forward email service.
From a technical perspective, it is an application layer communications protocol for federated real-time communication. It provides HTTP APIs and open source reference implementations for securely distributing and persisting messages in JSON format over an open federation of servers. It can integrate with standard web services via WebRTC, facilitating browser-to-browser applications.
Other attempts, like XMPP and IRCv3, at defining an open instant messaging or multimedia signalling protocol of this type and getting it widely adopted have highlighted the challenges involved, both technological and political. It is unclear if there is enough demand among users for services which interoperate among providers.
Development of Matrix is led by Matrix.org, a non-for-profit initiative based in the United Kingdom, which hopes to make it an open standard for decentralised, persistent and interoperable communications over the Internet. Matrix targets use cases like Voice over IP, Internet of Things and instant messaging, including group communication, along with a longer-term goal to be a generic messaging and data synchronization system for the web. The protocol supports security and replication, maintaining full conversation history, with no single points of control or failure. Existing communication services can integrate with the Matrix ecosystem.
Client software is available for open-federated Instant Messaging (IM), Voice over IP (VoIP) and Internet of Things (IoT) communication.
The Matrix standard specifies RESTful HTTP APIs for securely transmitting and replicating JSON data between Matrix-capable clients, servers and services. Clients send data by PUTing it to a ‘room’ on their server, which then replicates the data over all the Matrix servers participating in this ‘room’. This data is signed using a git-style signature to mitigate tampering, and the federated traffic is encrypted with HTTPS and signed with each server’s private key to avoid spoofing. Replication follows eventual consistency semantics, allowing servers to function even if offline or after data-loss by re-synchronizing missing history from other participating servers.
The Olm library provides for optional end-to-end encryption on a room-by-room basis via a Double Ratchet Algorithm implementation. It can ensure that conversation data at rest is only readable by the room participants. With it configured, data transmitted over Matrix is only visible as ciphertext to the Matrix servers, and can be decrypted only by authorized participants in the room.
- Nathan Willis (2015-02-11). "Matrix: a new specification for federated realtime chat". LWN.net. Retrieved 2015-06-28.
- Adrian Bridgwater (2014-09-09). "Matrix.org Reloads Inside "Illusion of Control" Vortex". Dr. Dobb's Journal. Retrieved 2015-07-20.
- Andrew Prokop (2015-02-23). "Solving the WebRTC Interoperability Problem - Post". No Jitter. Retrieved 2015-06-28.
- Ian Scales (2015-05-11). "To interop or not to interop? Is Matrix.org the answer for silo’d comms services?". TelecomTV. Retrieved 2015-06-22.
- Matt Weinberger (2014-09-16). "Matrix wants to smash the walled gardens of messaging". ITworld. Retrieved 2015-07-20.
- "Matrix". CrunchBase. Retrieved 2015-06-28.
- "Award Winners of the WebRTC 2014 Conference & Expo - Upperside Blog". WebRTC. 2014-12-23. Retrieved 2015-06-28.
- "WebRTC World Miami Wrap Up and Review". WebRTC. 2015-05-18. Retrieved 2015-06-28.
|This Internet-related article is a stub. You can help Infogalactic by expanding it.|