This Week in Matrix 2019-09-20

2019-09-20 — This Week in Matrix — Ben Parsons

Matrix Live 🎙

I spoke to Half-Shot about LOTS of topics in bridging, well worth a watch if you're interested in using Slack, IRC and other platforms with Matrix.

Dept of Spec 📜

Approved MSCs

No MSCs have cleared FCP this week.

Final Comment Period

No MSCs have entered FCP this week

In Progress MSCs

The Spec Core Team is going to try and select 3 MSCs to prioritise per week to work on, in order to not stretch resources too thin and to communicate clearly what it is we're actually up to. More details to follow.

Otherwise this week has been continuing to iterate on existing MSCs, as well as updating the MSC template to rename the "Tradeoffs" section to "Alternatives", and to get rid of "Conclusion" which was always just an unnecessary repeat of the introduction.

Dept of Servers 🏢

Construct

Notes from Jason:

Construct did a round of performance work and pursued some of the easier opportunities with the most effective returns. At present, the biggest performance bottleneck Construct experiences is with I/O, specifically latency from accessing disks in a random pattern. This week a few open opportunities for prefetch pipelines were taken, allowing the server to stream data directly from the disk to the client with minimal buffering. This was implemented in several places, mostly for the /media/ system, and also for the /members lists, improving the performance of requesting the members of a room like #whalepool:ericmartindale.com .

There is one area though that requires a special mention for being an order of magnitude more impactful than any other area where a pipelined stream was placed. We have analyzed the way Riot conducts a room change, and by the simple placement of a prefetch operation when the server receives an im.vector.breadcrumb_rooms, which comes early during the room change, Construct is able to populate the room's timeline significantly faster. That has a compounding effect, as the browser initiates several requests based on (and after) the received timeline data- meaning those responses come significantly faster.

Construct is the community driven Matrix server written in C++ for maximum performance. Swing by #test:zemos.net or https://github.com/matrix-construct/construct/ for more.

Synapse

Neil said:

Synapse This week, lots of hacking but not much in the way of news. We’ve been focusing on more privacy improvements as well as polishing up the SAML integration. Next week, expect a wodge of privacy related features to land.

Dept of Bridges 🌉

Matrix Slack bridge 1.0 RC2

Half-Shot said:

The Matrix Slack bridge has had another release candidate this week. 1.0 RC2 is out now. We've rewritten the codebase in Typescript and made many changes, and need your feedback before release so please do not hold back on testing it! The 1.0 release is slated to arrive sometime next week :)

famedly-email-bridge - new email bridge!!

sorunome told us:

Presenting famedly-email-bridge, a new email bridge! It is still early in development but can already send and receive emails.

Features so far:

  • Receive emails by a prefix (e.g. [email protected], [email protected])
  • Send emails with said prefix
  • Receiving emails parses plain body, html body and attachments
  • Sending emails collects all messages for a given amount of time. After that it creates an email based on that! Supports edits, redactions and files (image, video, audio, file)!

Things planned for the future:

  • Route emails to channels based on threading (reply-chain)
  • Send emails by making a new channel and inviting an email ghost and just sending messages!

IRC bridge progress: postgres

Half-Shot told us:

My other news that I forgot to mention is that I have a branch of the IRC bridge that runs off postgres, rather than flat file storage. It's much less memory/cpu intensive and might even offer a bit of a speedup :)

For ref: The current room/user store files for the freenode bridge take up 250MB when stored to disk. The existing storage system works on the principle of loading the whole datastore into memory and periodically saving to disk. Hopefully by not requiring the bridge to load all the state into memory, there are savings to be made.

mautrix-telegram v0.6.1

Tulir told us:

mautrix-telegram v0.6.1 has been released, no changes since the release candidates two weeks ago. mautrix-telegram v0.7.0 is scheduled to be released within 6 weeks.

Also, there's a WhatsApp business API bridge using Twilio in development, though I'm guessing most people won't have any use for that.

Dept of Clients 📱

Continuum progres

yuforia said:

Continuum desktop client written in pure Kotlin, version 0.9.24:

  • Non-square avatar images are scaled up and cropped to fit a square, instead of being scaled down and put into a square.
  • Scale avatar images when font size is increased/decreased with Ctrl and +/-. Below is a screenshot of Continuum with UI scaled to be 67% larger.
  • After signing-in, open the messaging view each time it's launched instead of showing the login view and requiring one extra click.
  • Shutdown background threads and close database so it won't be busy if Continuum is closed and immediately re-launched.

https://matrix.org/_matrix/media/r0/download/matrix.org/yLOmalevIOxrKATqZVjsmfvr

Riot Web

Ryan offered:

Riot Web worked on the last remaining bits of the current privacy sprint. We are planning to do a release soon that includes this privacy work from the last few months. We are also working on a few improvements for first time users around the create room dialog. We also shipped several patch releases (1.3.5 and 1.3.6) to fix high priority bugs.

Riot-iOS

Manu said:

Riot-iOS has made some progress on the privacy sprint. We fixed some major issues with VoiceOver. Those fixes will be released soon in a hot fix release: 0.9.5.

Riot Android

Benoit:

Riot Android: Still working on privacy

RiotX

Benoit reported:

A release has been done (0.5.0) with login with SSO support. There is also a new "no network" indicator, which is a bit bugged, we will fix that. Stabilization sprint is still ongoing. We already have fixed quite a lot of issues. François is still working on the read marker and is also fixing issues related to the permalinks.

krombel reported:

It might be interesting to some of you that the F-Droid repo for RiotX is finally working again. There was an issue with buildkite which in the end led to the situation that the built apk had a lower versionCode as the apps already in the repo. The repo was then "intelligent enough" to no offer it as update. benoit was able to resolve that so the repos are updating again.

Dept of Ping 🏓

New!! A new section where we will 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.

RankHostnameMedian MS
1g24.at267
2matrix.tetraodon.nl305
3nltrix.net335
4flip.earth355
5matrix.vgorcum.com438
6c-base.org439
7flobob.ovh444
8im.leptonics.com485
9mtx.liftm.de499.5
10uraziel.de537.5

Final thoughts 💭

Slack have invented bridging, very creative of them.

Nico has reappeared, on the tropical island Reunion and is looking again at his Elixir Homeserver project: Plasma.

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!