Matrix Ecosystem Updates

Drupal matrix_api module

Updated the Drupal matrix_api module to pass the auth token as a header instead of as a GET param… the GET param was leaking the token if there was an http exception thrown.

(John) – https://cgit.drupalcode.org/matrix_api

mxisd

v1.0.0 has been released and is now stable, making it the first community Identity server and first open federation one.

(Max) – https://github.com/kamax-io/mxisd

nheko

0.3.x of nheko was released! There is progress towards e2e encryption in mujx/mtxclient. Once this encryption is working there, it can eventually be included in nheko.

(mujx) – https://github.com/mujx/nheko

Fractal

Fractal 0.1.26 was released this week, which includes an animated scroll to bottom animation, fixed MacOS compilation, and bug fixes. Since then markdown support and many other commits have been spotted…

https://gitlab.gnome.org/World/fractal/

libqmatrixclient

kitsune released 0.2 of libqmatrixclient a couple of weeks ago, which he says is “the first one more or less functional and stable”!

Highlights include redactions support, files transfer (both ways), rooms creation, account data (tags, direct chat flags). Also there are a few things making libqmatrixclient clients stand out compared to, e.g., Riot: one can set per-room names/avatars, and also the best estimate for the number of unread messages can be taken from the library and shown in the client application.”

(kitsune) – https://github.com/QMatrixClient/libqmatrixclient

matrix-monitor-bot

#monitorbot:t2bot.io is a bot to measure latency between homeservers (as perceived by users).

It’s able to report metrics to Prometheus and has it’s own built-in dashboard (see https://lag.t2bot.io/ for some horrendous times). In the coming weeks it’ll become more production-ready, however in the meantime if people are looking to help iron out the scalability issues, please run an instance on your homeserver.

(TravisR) – https://github.com/turt2live/matrix-monitor-bot

uMatriks

thrrgilag wrote on behalf of uMatriks, to say that v0.10 was published to the openstore this last week which now includes unread counts for rooms. Those not already familiar, uMatriks is a native matrix client being developed for Ubuntu Touch.

https://github.com/uMatriks/uMatriks

Construct

There looks to be lots of activity on Construct (jzk’s fork of the charybdis ircd which adds in a C++ homeserver implementation) based on the commit log at https://github.com/jevolk/charybdis. jzk’s work there has been highlighting some of synapse’s nastier problems (e.g. thundering presence bugs), and it looks like the federation support is progressing steadily, including handling EDUs (presence & typing data).
(jzk) – https://github.com/jevolk/charybdis

matrix-puppet-maxs

tyler shared his “horrifying” project, for people that want to use Matrix to send an SMS via an XMPP bridge to their Android phone, in order to provide SMS and call notifications inside Riot.

(tyler) – https://github.com/tfreedman/matrix-puppet-maxs

matrix-register-bot

krombel built a bot to have a two step registration to synapse, check it out:

(krombel) – https://github.com/krombel/matrix-register-bot

picard

Cadair reported that he and SolarDrew have written a bot to bridge a whole slack team into a matrix community. It basically handles all the room admin for you including:

  • Invite the slack bot to the channel
  • Creating matrix rooms
  • Setting users as admins
  • Setting room name and room avatar and as publically joinable
  • Setting up the link with the slack AS
  • Creating and adding rooms to the community
  • Inviting all members of the communtiy to the rooms

It does these things on a 1 min cron, to pick up new channels as they are created on the slack side.

(Cadair) – https://github.com/SolarDrew/skill-picard

opsdroid connector

Cadair also mentioned that picard uses the opsdroid connector for matrix, also written by himself and SolarDrew, and has had recent updates.

(Cadair) – https://github.com/opsdroid/connector-matrix

matrix-python-sdk

Release v0.2.0 of the python sdk. Highlights from this release are a workaround for https://github.com/matrix-org/synapse/issues/3054 and use of connection pooling via a requests session.

(&Adam) – https://github.com/matrix-org/matrix-python-sdk

matrix-twitch-bridge

MTRNord is at the early stages of working on a twitch bridge for Matrix, written in golang.

(MTRNord) – https://github.com/Nordgedanken/matrix-twitch-bridge

IdleRPG

remaeus wrote in to say “we (+rpg:verse.im) just launched an initial build of #idlerpg:verse.im (now also available at #idlerpg:matrix.org) — an automated RPG that rewards you for staying online (via the presence API). It’s an initial test case for prototyping out a bot framework called “doorman” with multi-service support, but focused on Matrix as we are using it as a “backbone” for our p2p app framework.”

(remaeus) – https://github.com/FabricLabs/doorman

URI protocol scheme

kitsune started working on a design proposal for the Matrix URI scheme, with the ultimate goal to have the scheme passed through IANA so that we’re no worse than IPFS and others. The document is here (alpha quality but comments are already welcome): https://docs.google.com/document/d/18A3ZRgGR-GLlPXF_VIHxywWiX1vpMvNfAU6JCnNMVuQ/edit

There is also a spec proposal room: #uri-scheme-proposal:matrix.org.

(kitsune)

Riot/Web

  • The Great Relayering landed – almost all of Riot/Web’s code is now gathered together in one sensible place (matrix-react-sdk). No more duplicate PRs or CSS & JS living in different repos!
  • Folks with open PRs against the riot-web repository will need to reopen them against matrix-react-sdk (or more likely, merge them into their existing equivalents on matrix-react-sdk)
  • Michael (t3chguy’s) Replies work has almost landed and is looking fantastic!
  • Next up: improving test coverage slightly; fixing regressions in 0.14; and a few other minor bits and bobs before we land 0.15.

Riot/Mobile

  • New releases on the horizon for both iOS & Android
  • Welcomed Benoit to the Android team, acting as lead android dev!
  • Finalising all new UX for configuring push notification permissions…
  • Final touches for Sticker viewing (including animated stickers!)
  • Fix embarrasing crash on iOS on certain shapes of Riot/Web URLs…
  • Supporting French Government Matrix activity

Synapse

  • Operational firefighting continues: stopping malformed events from impacting federation; investigating thundering herds of presence EDUs; trying to keep Freenode joins from lagging;
  • Meanwhile, Erik has been working hard on the problem of Incremental State Resolution (the big algorithmic win which could massively improve HS performance, especially for Synapse); this is looking promising and has ended up taking the form of a formal mathematical proof that the proposed algorithm works: https://matrix.org/_matrix/media/v1/download/jki.re/hSmkLkFGVUnrXjtYcjsCUsyS (aka https://github.com/matrix-org/synapse/pull/3122) is where that’s happening! Warning: contains maths.
  • …and also wrote a Rust testjig for state resolution to help reason about it: https://github.com/erikjohnston/rust-matrix-state
  • Official Ansible playbook repository dev is progressing on the develop branch at https://github.com/matrix-org/matrix-ansible thanks to massive work from Michael K. We’ll blog properly about this when ready for use in earnest.
  • Dave has been doing an interesting experiment in syncing user profile data from HSes into ISes (useful for folks running a private federation with its own IS who want to use the IS as a global user directory); almost complete – we’ll see how this goes.
  • GDPR work is in progress. We’re seeing how far we can push the envelope on improving privacy, including a very interesting thought experiment on pseudonyimsing MXIDs to provide ‘perfect’ right-to-erasure. vdH is on the case. Warning: this may well require a major federation protocol bump if we go through with it.
  • More Python3 port PRs are landing from NotAFile – thanks! They’re getting slightly lost behind everything above.

Dendrite

  • Still stuck behind Synapse work.
  • Barring disasters we have at least 2 new folks starting fulltime in the core team (both synapse & dendrite) to help backend progress at the end of May however!
  • Lots of PRs coming in from APWhitehat though – thanks!!

Spec

  • uhoreg has been looking at the .well-known URI proposal again
  • Spec work on the core team is currently stuck behind Riot/Web and Synapse work, sadly, on the basis that burning implementation problems are more visible and harming to the project than burning spec problems.

Matrix in the News

Tom’s Hardware provided a great article on about Matrix in the French Government.

Next INpact produced two articles, one from last week introducing a project from the French government to use an open messaging platform, then a follow up provided an extremely thorough story covering Riot & Matrix following the announcement of the French Government encrypted messaging project. (Article is in French, but will Google Translate nicely!)

Huge thank you to nouts who produced a great intro to Riot and Matrix! Check it out! (Note that is also in French.)

 

New Rooms roundup

And Finally…

Check out Matrix Live, now available at https://youtu.be/EstVaVUWkdw

Thanks for reading the very first This Week in Matrix! There will be another post next week, so if you’d like to be included join us in #twim:matrix.org. See you next week!