This Week in Ruma

by Jimmy Cuadra

Ruma is a Matrix homeserver, client, and supporting libraries written in the Rust programming language. Matrix is an open specification for an online communication protocol. For an overview of the project, visit the home page. This Week in Ruma is a weekly summary of the development of Ruma, published on Sunday nights.

From the editor

In the last update, I mentioned that the ongoing ruma-events revamp was impeded by an issue with types from ring which don't implement Clone and PartialEq. It turns out that there is a reasonable explanation for this, and so it was decided to work around it. I restructured the ruma-signatures types in question so that they don't contain ring types, but simply construct them and use them as-needed in the relevant methods.

While I was working on ruma-signatures, I decided to fill in the missing functionality—signing and verifying events. In the process of doing that, I ended up with a significantly revised API for the crate, which has now been released as version 0.5.0. In a somewhat amusing development, the new ruma-signatures API doesn't include the Signatures and SignatureSet types that were causing the issue in ruma-events in the first place. As a result, ruma-events is not only unblocked, but doesn't have depend on ruma-signatures at all.

I made a little bit more progress on ruma-events. There is only one module remaining to be updated to the new API, so we're on the home stretch for a new ruma-events release.

The source code and content of this website are free and available under the MIT license: www.ruma.io