| Matrix | ||
|---|---|---|
|
| ||
| Función | mensajería instantánea y federation | |
| Puertos | 8448 (Federación) | |
|
| ||
Matrix (estilizado como [matrix] o [m]) es un estándar abierto y protocolo de comunicación para mensajería instantáneacifrada extremo a extremo enfocado en el funcionamiento y comunicación eficiente entre distintos proveedores de servicio, de manera similar a cómo el protocolo SMTP lo hace para el servicio de correo electrónico de almacenamiento y reenvío en diferido, permitiendo la comunicación entre usuarios de distintas plataformas a través de chat en vivo, VoIP y videollamada. De esta manera, sirve un propósito similar a protocolos como XMPP.
Desde una perspectiva técnica, es un protocolo de comunicación de la capa de aplicación para comunicaciones federadas en tiempo real. Proporciona APIs HTTP e implementaciones de código abierto para la distribución segura y persistente de mensajes en formato JSON sobre una federación abierta de servidores. Puede integrarse con servicios web estándar via WebRTC, facilitando las aplicaciones P2P entre navegadores.

Matrix se centra en casos de uso como la voz sobre IP (VoIP), la Internet de las cosas, la mensajería instantánea y la comunicación en salas grupales, junto a un objetivo a largo plazo de ser un sistema genérico de mensajería y sincronización de datos para la web. El protocolo soporta la seguridad y la replicación de las comuicaciones, manteniendo un historial completo de conversaciones, sin puntos únicos de control o fracaso. Los servicios de comunicación existentes pueden integrarse con el ecosistema Matrix.
El estándar Matrix especifica las API HTTP RESTful para transmitir y replicar datos JSON de forma segura entre clientes, servidores y servicios con capacidad Matrix. Los clientes envían los datos poniéndolos en una 'sala' de su servidor, que luego replica los datos en todos los servidores Matrix que participan en esta 'sala'. Estos datos son firmados usando una firma de estilo git para mitigar la manipulación, y el tráfico federado es cifrado con HTTPS y firmado con la clave privada de cada servidor para evitar la falsificación. La replicación sigue una semántica de consistencia eventual, permitiendo que los servidores funcionen incluso si están desconectados o después de la pérdida de datos mediante la re-sincronización de la historia que falta de otros servidores participantes.
La biblioteca de Olm proporciona un cifrado opcional de extremo a extremo en cada habitación mediante la implementación de un algoritmo de doble trinquete, que puede garantizar que los datos de la conversación en reposo solo sean legibles por los participantes de la habitación. Con su configuración, los datos transmitidos por Matrix solo son visibles como texto cifrado para los servidores de Matrix, y solo pueden ser descifrados por los participantes autorizados de la sala. Las bibliotecas Olm y Megolm (una ampliación de Olm para adaptarse mejor a la necesidad de salas más grandes) han sido objeto de un examen criptográfico por el Grupo NCC, cuyas conclusiones están a disposición del público, y han sido abordadas por el equipo de Matrix. El examen fue patrocinado por el Open Technology Fund.
El protocolo soporta la interoperabilidad entre diferentes aplicaciones de chat en salas Matrix. Estos puentes son programas que se ejecutan en el servidor y pueden comunicarse con otros servidores en tiempo real, representando la misma sala de chat en los distintos clientes .
Algunos ejemplos de puentes son:
Element es considerada la implementación de referencia de un cliente. Sin embargo, existen otros clientes, bots, puentes, servidores y otras implementaciones sobre el protocolo Matrix.