This Week in Ruma

› published on by

From the editor

The last couple weeks have been very busy for Ruma, in spite of the holiday season! We released another of the Ruma crates to crates.io, ruma-events, which contains Rust types for all the events in the Matrix specification. Events are the primary data structures that are exchanged in Matrix. ruma-events makes it easy for client and server code to share the same representations of these events, and to convert them to JSON and back. ruma-events was the first component of Ruma that was developed, so I'm very happy to see it reach a stable enough point to be published. The Ruma homeserver had been using it as a Git dependency for a while, but now it's at a good place to start using for client applications.

There's also been a lot of contributions to ruma-client-api. This crate contains types for the requests and responses for each of the API endpoints in Matrix's client-server specification. In the near future, it will replace the the request and response types currently used by the homeserver, and is already being used to spike out an implementation of ruma-client, a high-level client library.

These Matrix libraries are part of the broader ecosystem and vision of the Ruma project. Our goal is not only to build a Matrix homeserver, but to build a collection of Matrix libraries that developers can use to build high quality, interoperable Matrix-enabled software in Rust. We recently launched a new projects page on the website that explains each library and how it relates to the others in detail.

Notable changes to ruma

Notable changes to ruma-events

Notable changes to ruma-identifiers

Notable changes to ruma-client-api

Notable changes to ruma-api

Notable changes to ruma.dev

New contributors

Call for participation

Interested in getting involved with Ruma? Here are some good places to start:

New:

Previously featured and still available:

There are also plenty of API endpoints that still need to be implemented. Check the status document for a list.