Matrix Live 🎙
Some snapshots of what the team has been working on. Look out for a clear explanation from Erik about Synapse performance (and what will be done about it!), and lots of other goodies
Dept of Status of Matrix 🌡
Tchap used by French fire and rescue services
Tchap, the Matrix deployment in the French government, recently opened to French fire and rescue services: https://twitter.com/_DINUM/status/1243595481449717761
Rescue18 (a French non-governmental news website for emergency services) echoed this announcement earlier this month, praising the security aspect of the platform and the possibility it offers to improve social and professional exchanges throughout the hierarchy as well as the rest of the government and public services.
Article is all in some other language - thanks Brendan for providing this summary.
Dept of Spec 📜
Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.
- No MSCs were merged this week
MSCs in Final Comment Period:
- No MSCs are currently in FCP
Spec Core Team
Dept of Servers 🏢
Shipped 1.12.4 a patch release to fix some cross signing related bugs.
Redis support to replace our existing cross replication system, merged to develop. This is a precursor to the sharding project. We have a PR to support cache invalidation across workers which, once merged should make it relatively easy to pull off event persistence from the master process. Just removing event persistence could give some decent perf wins, but the prize is then splitting persistence to run across across multiple workers.
A final PR to support SSO for user interactive auth will merge imminently, thereby freeing up full cross signing support for worker installs.
Aside from that we’ve been working on fixing a weird bug where rooms can end up with zero forward extremities and generally showing Sygnal some love.
Put Redis into production
Ship 1.13.0 which will contain Redis support as well as a host of SSO bug fixes.
Merge our new caching config logic to give finer granularity on cache settings.
Merge cache invalidation and try to get events persistence running in its own worker.
Cross signing, oh cross signing! Can you believe it‽ Cross signing!!!
matrix-corporal manages your Matrix server according to a configuration policy
matrix-corporal v1.9.0 has been released. It adds support for preventing certain users from creating rooms (that is, from using the
/createRoomAPI). I've been thinking about developing this feature for a while now, as people have been requesting it frequently.
matrix-media-repo is a highly customizable multi-domain media repository for Matrix
v1.1.2 is out with a bunch of fixes to the Docker image. Check out https://github.com/turt2live/matrix-media-repo/releases/tag/v1.1.2 for details, and #media-repo:t2bot.io for support.
Conduit is a Matrix homeserver written in Rust https://conduit.rs
timo told us:
Conduit is a Matrix homeserver written in Rust https://conduit.rs
This week I worked a lot on getting the first bit of federation working. My goal was to query the public room list of another server and forward it to a client.
This involved setting up a keypair to sign the json I send to the server and putting authorization headers into my requests. Most of the work is already done and https://federationtester.matrix.org/ reports it's all good.
Sadly there seems to be a problem with the signing, because other homeservers reject requests:
Unable to verify signature: <class 'nacl.exceptions.BadSignatureError'> Signature was forged or corrupt. I'll continue to work on this in the next week(s).
Thanks to my supporters on Liberapay.
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
Neil Alexander said:
Dendrite now supports perspective key fetching as a configurable option, and will automatically attempt to use the perspective key servers for keys that couldn't be fetched directly
Dendrite now uses a newer version of the Sarama library
Some caching has been added to the roomserver API for room versions, which should help quite a bit with performance over federation and handling transactions
Auth checks for
/send_joinare now quite a bit more robust
A bug has been fixed where the default state filter limited the amount of room state that was visible after a join
gomatrixserverlib has quite a bit of new support for backfilling now, which will be wired into Dendrite soon
gomatrixserverlib has new primitives for v2 invite responses and
Invite support is being worked on currently, which should also enable support for creating DMs in Riot
Synapse Deployment 📥
Ananace told us:
A bit late to the party - was rebuilding my cluster at home to EL8 - but pushed the Kubernetes-optimized docker images for Synapse 1.12.4
The image for synapse v1.12.4 including jemalloc and mjolnir anti-spam has been released to avhost/docker-matrix:v1.12.4.
Dept of Clients 📱
aa13q told us:
Matrix native integration for the Sailfish OS, KDE and other linux systems called telepathy-tank got attertion from the community this week and @aa13q updated it a bit thanks to @Kaffeine. Writing the post for the TWIM has grown into the small blog post, so @aa13q shared it sepatetely: https://hackmd.io/@aa13q/telepathy-tank
Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at
Nico (@deepbluev7:neko.dev) offered:
Nheko released two new version, 0.7.0 and 0.7.1. The second one mostly fixes some minor issues in the 0.7.0 release, which we got from all the people trying it out. Thanks for reporting them!
Since 0.7.0 is pretty big, please read the release notes on github: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.7.0
Some of the highlights:
Support for rich replies
Support for encrypted media
Key import compatibility fixes for Riot
Reduced memory usage, performance optimizations and fixes for some nasty memory corruption and crashes
gomuks got a fancy initial sync loading bar so it no longer looks like it's broken after you log in. Implementing end-to-end encryption in mautrix-go has also been slowly progressing, might have something working in a few weeks.
A glossy Matrix collaboration client for the web. https://riot.im
This week we released a fourth RC for Riot Web 1.6, the upcoming release with cross-signing, addressing a few issues found through everyone's testing and feedback. Please do continue to test https://riot.im/develop, the latest RiotX build, and also E2EE search in Riot Desktop Nightly.
Dept of SDKs and Frameworks 🧰
Benedict told us:
I created an client-sdk to interact with matrix in Spring Boot. It is written in kotlin and should also work with Java. You can find the repo here: https://github.com/benkuly/matrix-spring-boot-sdk
It contains also a bot-sdk to write bots by adding a dependency and a few lines of code only. It is tested with unit-tests, but integration-tests against a real matrix-server are currently missing. A simple ping bot works and is also integrated in the repo as example.
Currently I'm working on getting this to Maven Central.
Dept of Ops 🛠
This Ansible playbook is meant to easily let you run your own Matrix homeserver.
Slavi told us:
Thanks to Rodrigo Belem's efforts, matrix-docker-ansible-deploy now supports bridging to Slack via the mx-puppet-slack bridge. See our Setting up MX Puppet Slack bridging documentation page for getting started.
Dept of Interesting Projects 🛰
Doctor Who watchalongs
As per the previous edition of TWIM, we had a blast on Sunday watching and reacting to Doctor Who episodes The Stolen Earth and Journey's End.
The next watchalong will be this Friday (Apr 24th), and we'll be watching another two-parter together, Human Nature & The Family of Blood, starting from 7PM BST! Guests such as Paul Cornell (writer), Charles Palmer (director) & Lor Wilson (Lucy Cartwright aka Daughter of Mine) will also be discussing the episode along for even more fun and behind the scenes!
This means that if you're reading this when this edition of TWIM goes out, and you fancy watching some Doctor Who this evening, join the fun at #doctor-who-watchalong:abolivier.bzh 😀
And if not, feel free to join the room anyway to find out when the next watchalong is happening 🙂
Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!