Tulir Asokan / Blog

August 2026 releases // Bandwidthmuks 2.0 and mascots

Posted on • 553 words

This month's releases include the bridge changes announced last month, more bandwidth-saving features for gomuks, and new mascots!

Software Version
mautrix-gmessages v26.08
mautrix-whatsapp v26.08
mautrix-telegram v26.08
mautrix-linkedin v26.08
mautrix-discord v0.7.7
mautrix-twitter v26.08
mautrix-signal v26.08
mautrix-slack v26.08
mautrix-meta v26.08
meowlnir v26.08
gomuks v26.08
mautrix-go v0.30.0
go-util v0.10.0

gomuks

gomuks got a ton of small changes and a few bigger ones. The biggest one is the new bandwidth-saving features, which the section below is about. Other notable changes include:

See the changelog for the full list of changes.

There's also a draft PR for supporting push notifications from the homeserver to better enable running the backend on mobile devices. Bundled backends on the Android and iOS wrappers are probably still several months away at least, but Nexus already has a bundled backend and will likely implement push notifications soon.

Bandwidthmuks 2.0

A year after the first wave of bandwidthmuks, the second wave has landed. Server-sent events have been added as an alternative to websockets. Compression is enabled by default in SSE and zstd is supported in addition to deflate, which is usually more efficient. Outgoing requests are sent as separate HTTP requests, which means they won't fail immediately if the socket disconnects. Requests can also be auto-retried on network errors more easily, though that part isn't implemented on the client yet.

Using separate HTTP requests does mean that you have to use HTTP v2 or higher to avoid frequent TCP/TLS handshakes, so make sure your reverse proxy is configured to support that. In the future, gomuks may automatically enable SSE when it detects that HTTP/2 is available.

When server-sent events are enabled, the low-bandwidth mode switch will enable room list caching. Instead of reloading all data from the backend, the frontend will store the room list in IndexedDB and ask the server to send just the rooms that changed since it was last online. On my (big) account, the full init sync is 9mb uncompressed or 2mb with zstd. With room list caching, the init sync size varies, but it's usually some tens or hundreds of kilobytes uncompressed.

Bridges

As announced last month, the old mautrix-meta bridge can no longer be used for Instagram DMs. Meta also disabled the old API a couple weeks ago, so the old bridge version won't work at all anymore. The same repo contains a new mautrix-instagram bridge which replaces that functionality. mautrix-meta is still used for Facebook Messenger.

As also mentioned last month, the WhatsApp bridge has switched to prefer LIDs for all chats, including DMs. Phone number ghosts will automatically be replaced with LID ghosts in all DM portal rooms after upgrading.

In the future, the Google Messages bridge will switch to stable chat identifiers in the next release. The switch should remove the need to re-backfill chats when relogining. To prepare for the migration, you must run the bridge on v26.08 before upgrading further.

Mascots

In non-code news, the bridges and gomuks have mascots now.

image

The initial designs were commissioned from @LouLubally. I'll probably commission a sticker pack next and maybe some room avatars for gomuks and Meowlnir. Let me know if you have other ideas for them.