matrix.org/content/blog/2020/08/2020-08-14-this-week-in-mat...

404 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "This Week in Matrix 2020-08-14"
path = "/blog/2020/08/14/this-week-in-matrix-2020-08-14"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2020-08-14-hydrogen.png"
+++
## Matrix Live 🎙
No new Matrix Live this week, we have Open Tech Will Save Us #5:
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/tJ8tthkVAOQ"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
Also, I recommend Matrix Live from last week, with [Timo and Matthew discussing Conduit/Rust/Homeserver dev](https://youtu.be/cIOKD9xM3F0). Conduit is absolutely motoring, as you will read below.
## Dept of _Status of Matrix_ 🌡️
### Linköping University has now soft-launched Matrix
[Alexander Olofsson](https://matrix.to/#/@aleol57:liu.se) said:
> In _completely unrelated_ news to my earlier K8s updates, Linköping University has now soft-launched Matrix for use both internally - and hopefully with other universities and institutions in the future.
Se the k8s updates from _Ananace_ below. Is this the first .se university offering Matrix? Also, great hostname!
## Dept of Spec 📜
### SAS Emoji Translations
[TravisR](https://github.com/turt2live) said:
> We've finally opened up <https://translate.riot.im/projects/matrix-doc/sas-emoji-v1> to translate the emoji used by clients to ensure that users are securely verifying each other. The idea is that clients should always have a consistent name for these emoji, even if developed by completely different teams. If your client supports encryption verification and has translations, please transition to using matrix-doc for your translations: <https://github.com/matrix-org/matrix-doc/pull/2728> has some details, and [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) would love to help out.
![2020-08-14-Ly4te-image.png](/blog/img/2020-08-14-Ly4te-image.png)
### Spec
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) said:
> 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>.
>
> #### MSC Status
>
> **Merged MSCs:**
>
> - _No MSCs were merged this week._
>
> **MSCs in Final Comment Period:**
>
> - _No MSCs are in FCP._
>
> **New MSCs:**
>
> - [MSC2730: Verifiable forwarded events](https://github.com/matrix-org/matrix-doc/pull/2730)
> - [MSC2723: Forwarded message metadata](https://github.com/matrix-org/matrix-doc/pull/2723)
>
> #### Spec Core Team
>
> Some of the team was on holiday last week, hence the noticeable lack of progress 😇 In terms of Spec Core Team MSC focus for this week, we're keeping on with the same two as last week: [MSC2674](https://github.com/matrix-org/matrix-doc/issues/2674) (aggregations pt1: relationships) and [MSC1544](https://github.com/matrix-org/matrix-doc/issues/1544) (QR code verification).
![2020-08-14-i2G3v-stacked_area_chart.png](/blog/img/2020-08-14-i2G3v-stacked_area_chart.png)
## Dept of GSoC 🎓️
### Opsdroid(GSoC)
[tyagdit](https://matrix.to/#/@tyagdit:matrix.org) announced:
> #### Matrix database
>
> - The port to nio is complete and most of the functionality has been worked out
>
> - Encryption support is being worked on
> - The module now has a `delete` method
>
> - Some testing is remaining
> - Check out the progress [here](https://github.com/opsdroid/opsdroid/pull/1587)
>
> #### End to End Encryption with matrix
>
> - Opsdroid will soon get a new release with the new connector
>
> - For now it can be used through the [master branch](https://github.com/opsdroid/opsdroid) of opsdroid
## Dept of Servers 🏢
### Synapse
[Neil](https://matrix.to/#/@neilj:matrix.org) reported:
> We have [a new RC out](https://github.com/matrix-org/synapse/releases/tag/v1.19.0rc1), edited highlights include
>
> - _lots_ of async/await changes, 27 separate PRs (thanks Patrick)
> - improved logging performance, this is in part to reduce IO but also to reduce the total amount logged. Wed be really interested to get some feedback on if the changes help. You may also want to take a look at our new logging defaults to see if they would help reduce total disk space usage.
>
> - Further improvements to the Admin API allowing admin to optionally purge rooms on deletion.
>
> Expect 1.19.0 to land early next week.
>
> Aside from that Erik has been continuing with sharding the event persister, this is a big job, so were still a little way off having something to ship, but Ill keep you updated.
>
> Big news this week, after spending a good chunk of time trying to rework notifications to make the UX more intuitive, we have decided that the best (and only) way forward is to completely rethink how the push rules work. Rich is currently redesigning the whole thing, and once done well resume on the client side.
>
> Having spent much of the past 3 months trying to improve the performance of large scale instances we will soon start looking at improving the out of the box experience for smaller installs and are in the early stages of thinking about what that might look like. Ill update more over time, but the two obvious use cases to target are
>
> - Federating instance, with 1-5 users, resource constrained.
> - Federating instance with a few hundred users.
>
> Our (relatively small) changes to logging in 1.19.0 are the first signs of this shift. We still need to ship event persistence sharding and also move more functionality from the main process (dependent on async/await), but once done it clears the way for new projects.
![2020-08-14-2cR_s-image.png](/blog/img/2020-08-14-2cR_s-image.png)
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) brought it to our attention that this graph looks like a "ocean-beach waterline dropoff".
### Conduit
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
[timo](https://matrix.to/#/@timo:koesters.xyz) reported:
> This week I worked a bit on federation! Last week we were able to query room directories over federation; This week I looked into what's needed to join one of those rooms:
>
> - Resolve room aliases over federation
>
> - Send make_join request when a user tries to join an unknown room
> - Use make_join response to create send_join request (insert origin, origin_server_ts and add hashes and signatures)
>
> After implementing all those things, I could actually see Conduit's join event on Synapse!
![2020-08-14-bRuiV-Screenshot_20200814_125755.png](/blog/img/2020-08-14-bRuiV-Screenshot_20200814_125755.png)
> Of course a lot more work is needed to make this really work,
>
> like creating the room on the Conduit side and sending and receiving federation
> transactions, but this is a start.
>
> Other news:
>
> - Docker support (thanks to @weasy, @valkum and @paul)
>
> - Room upgrade support (almost done, thanks to @Faelar)
>
> Thanks to everyone who supports me on [Liberapay](https://liberapay.com/timokoesters) or Bitcoin!
### Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) told us:
> This week we've been closing off some of the remaining tasks for end-to-end encryption and working on tasks from our [beta milestone task list](https://github.com/matrix-org/dendrite/milestone/8).
>
> Changes this week include:
>
> - New format for the Dendrite configuration file, which is correctly broken up into configuration per-component
>
> - Support for server ACLs has been added
> - Significant refactoring of the HTTP routing and API setup to improve flexibility and separation of internal and external APIs
>
> - A number of improvements to device list handling
> - Key updates are now sent when handling device display name changes
>
> - Deleted devices are now propagated correctly over federation
>
> Spec compliance is improving:
>
> - Client-Server APIs: 54%, up from 51% last week
>
> - Server-Server APIs: 70%, up from 54% last week
>
> As always, feel free to join us in [#dendrite:matrix.org](https://matrix.to/#/#dendrite:matrix.org) for the latest!
I'm enjoying the close rivalry and progress happening in Dendrite and Conduit right now!
### Sytest
[Neil Alexander](https://matrix.to/#/@neilalexander:matrix.org) reported:
> Sytest has now been updated to allow skipping tests for endpoints that have been deprecated in the spec. This may be useful if you are writing a homeserver and have no plans to implement deprecated endpoints, e.g. `/initialSync` or `/events`.
>
> Use the command line parameter `--exclude-deprecated` when starting Sytest to skip these tests!
## Synapse Deployment 📥️
### YunoHost
[Pierre](https://matrix.to/#/@pierre:mamieserv.fr) reported:
> [YunoHost](https://yunohost.org) is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.
>
> [Synapse](https://github.com/YunoHost-Apps/synapse_ynh/tree/master) integration had been updated to 1.18.0
>
> [Element Web](https://github.com/YunoHost-Apps/element_ynh/tree/master) integration had been updated to 1.7.3
### Kubernetes
[Ananace](https://matrix.to/#/@ace:kittenface.studio) reported:
> Just pushed some WIP (v0.1) [charts](https://gitlab.com/ananace/charts) for both Synapse and the matrix-media-repo project, written with Redis, workers/sharding, PVC constraints, and other large deployment thoughts in mind.
>
> Note that these charts - the Synapse one in particular - basically require you to have a fully featured cluster, with a regex-capable ingress, automated cert manager, and RBAC. They do not require you to have a ReadWriteMany capable storage class though, even when using workers.
and then:
> To expand on my earlier TWIM, the [charts for Synapse, media-repo, and now element-web](https://gitlab.com/ananace/charts) are all being used in production now so they are also respectively receiving their 1.0's
## Dept of Clients 📱
### Nheko
[Nheko](https://github.com/Nheko-Reborn/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)](https://matrix.to/#/@deepbluev7:neko.dev) said:
> So, we've been silent for a bit, but that doesn't mean we haven't been busy, so I have a little bit of a bigger announcement to make today:
>
> Trilene implemented voice call support in Nheko! We just merged this and you can try it out now!
>
> Some caveats apply at the moment, but will be resolved in the near future:
>
> - Currently you will need to have a patched version of GStreamer. The current releases of GStreamer have a [bug](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/831) when your turnserver uses a password, that contains a ':'. Since this is the default for coturn, I'm guessing this affects everyone.
>
> - You will need to build Nheko yourself. Currently we do not have GStreamer available in our CI pipeline, so we disabled support for voice calls in those builds (apart from the flatpak build, but that also needs some further validation and a new GStreamer release). We will release proper builds with VOIP support once GStreamer is actually released and available with the fixes we need.
> - There are still some other issues, when relying on a turnserver to connect a call. We will fix them one at a time.
>
> Big shoutout to trilene for implementing all of this! I can finally call people from Nheko, which is super awesome!
>
> This was the first of the bigger features, that have been cooking for a while, in the near future we should also finish the new event store, which reduced memory usage and provides some kind of offline support, and Chethan will probably finish the first iteration of cross-signing soon too. After that we'll focus on the smaller features again. ;-)
BIG update! Looking forward to trying out voice calls. ☎️ Maybe we'll be calling Nico for Matrix Live soon..?
### Element-Android
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) said:
> We are still fixing issues following the Element release. We are also working to add Jitsi conference call support.
>
> We have exported a first beta version of the SDK from Element Android. It is available here: <https://github.com/matrix-org/matrix-android-sdk2> and can be integrated in any Android app as a regular gradle dependency. We will update the SDK after each release of Element Android.
### SchildiChat for Android
[SpiritCroc](https://matrix.to/#/@spiritcroc:matrix.org) said:
> [SchildiChat](https://github.com/SpiritCroc/SchildiChat-android) version 1.0.4-sc.12 should be up in the [Play Store](https://play.google.com/store/apps/details?id=de.spiritcroc.riotx) soon.
>
> It includes following changes since the last TWIM:
>
> - The single-list overview screen is now optional. If you prefer the tabbed layout for separating direct messages and rooms, as known from Element for Android, but still want SchildiChat's message bubbles, you can get that combination now too!
>
> - Push notifications have been enabled for the Play Store variant
> - Some theme fixes for old Android versions
### Hydrogen
[Bruno](https://matrix.to/#/@bwindels:matrix.org) told us:
> Some regular readers might remember, in the past I've put a few entries here about a side-project called [Brawl](https://github.com/bwindels/brawl-chat/). Two weeks ago, we took Brawl and started building a new client on top of it code-named Hydrogen.
>
> As the name implies, Hydrogen tries to be the lightest Element. It is written entirely in vanilla javascript (no React, no Webpack) for complete control, structured as an MVVM app, leveraging the raw performance of indexeddb. On huge accounts where Element-web uses up to 1GB of heap memory, Hydrogen sips away with a mere 15mb. It is very early days though, and Hydrogen has very little features: you can receive and send unencrypted messages and that's it.
>
> Hydrogen also aims to support a wider range of browsers, from IE11 (particularly for orgs with locked-down machines) all the way to a fully featured PWA that works well on mobile. We should also be able to easily add progressive loading, which [proved hard in the past](https://github.com/vector-im/element-web/issues/2498).
>
> Another goal is to make it easy to embed parts of the app (like the room view) into another app or website. It could also be really nice to have a place to play and experiment with new tech for element proper - much as Dendrite has influenced Synapse.
>
> As mentioned, it's early days, and lots of things are missing or broken, so **please don't file any issues yet**. Feel free to play around with it at <https://hydrogen.element.io/> though!
![Hydrogen](/blog/img/2020-08-14-hydrogen.png)
Find the repo here: <https://github.com/vector-im/hydrogen-web/>.
### Element-iOS
[ismailgulek](https://matrix.to/#/@igulek:matrix.org) offered:
> This week, we've completed some of the tasks from the sprint: <https://github.com/vector-im/element-ios/milestone/38.>
>
> As a highlight, we've released a new TF with PushKit & CallKit back.
## Dept of SDKs and Frameworks 🧰
### Ruma
Ruma is a Rust project to create a comprehensive set of APIs for Matrix. Previously there was a Ruma homeserver project.
[iinuwa](https://matrix.to/#/@iinuwa:matrix.org) announced:
> Lots of exciting things happened in Ruma this week:
>
> - We have officially implemented over half (18/31) of the Federation API endpoints!
>
> Special thanks to @agraven and @q-b!
>
> - We've added the only new endpoint from r0.6.1 of the C2S spec.
>
> - We have begun work on adding support for borrowed types for requests. This
> should reduce the memory allocations required for clients to send requests to
>
> a server.
>
> - Exported some macros to make creating custom endpoints and events that
>
> much easier.
>
> #### New Contributors
>
> This week, we have gotten help from a few new contributors:
>
> - [@agraven](https://github.com/agraven)
>
> - [@lieuwex](https://github.com/lieuwex)
> - [@q-b](https://github.com/q-b)
>
> Thanks for your help!
>
> If you're interested in contributing, join the party on
> [GitHub](https://github.com/ruma/ruma) or
>
> [#ruma:matrix.org](https://matrix.to/#/#ruma:matrix.org)!
Great to see new contributors here.
## Dept of Ops 🛠
### Support for Ansible collections from Famedly
[JCG](https://matrix.to/#/@jan.christian:gruenhage.xyz) told us:
> There's news from ansible land! Ansible recently introduced a new packaging format, the "collection", and we've now started moving our ansible content into collections. This means the matrix modules I twim'ed a few months back are now easier to install than ever before, and the synapse/element roles are included in there as well (thanks to [madonius](https://matrix.to/#/@madonius:entropia.de) for the contributions there). The roles have been regularly updated for a while now, and the element role isn't even called riot anymore! You can get the collection on [Ansible Galaxy](https://galaxy.ansible.com/famedly/matrix), with the source being available over on [GitLab](https://gitlab.com/famedly/ansible/collections/matrix). In case of any questions, feel free to hop over into [#ansible:famedly.de](https://matrix.to/#/#ansible:famedly.de)
If _Ansible_ were a film franchise "Ansible: The Collection" would be the long awaited boxset.
## Dept of Bots 🤖
### Cody
[carl](https://matrix.to/#/@carl:bordum.dk) said:
> cody - the REPL for your matrix room - received support for unit conversions this week. This is done by implementing GNU units as a language.
>
> Chat with cody: [@cody:bordum.dk](https://matrix.to/#/@cody:bordum.dk)
>
> Join our cody room: [#cody:bordum.dk](https://matrix.to/#/#cody:bordum.dk)
> Read the source: <https://gitlab.com/carlbordum/matrix-cody/>
![2020-08-14-cody.png](/blog/img/2020-08-14-cody.png)
Seems to work well!
### Opsdroid
[Cadair](https://matrix.to/#/@cadair:cadair.com) reported:
> [opsdroid](https://github.com/opsdroid/opsdroid) is getting close to a release with the matrix connector rewritten to use the matrix-nio library. If you are feeling brave and want to help us iron out any bugs before the release, please install the master branch and test it out for your matrix bots. Please report any issues on the GitHub issue tracker or come talk in [#opsdroid-developers:matrix.org](https://matrix.to/#/#opsdroid-developers:matrix.org). Hopefully, a release with this and lots of other goodies will be coming in a couple of weeks.
## Dept of Interesting Projects 🛰️
### Privee
[terry_hello](https://matrix.to/#/@terry_hello:matrix.org) said:
> Hi All,
>
> Ive created a compact and portable home server based on Matrix protocol, its a piece of hardware which is easy to use and set up. Im working on a new client APP similar to other typical messenger GUI, but this server we named it Privee supports any messenger developed with Matrix protocol. Ive launched a campaign on Kickstarter this week, please come and support us! Thank you!
> <https://www.kickstarter.com/projects/privee/privee?ref=beibnw>
Privee is an _interesting project_ alright! The project creators are based in Hong Kong, and are working from a desire to have more control over their communications. The plan is to run homeservers on a small computer physically located with the user, similar to plans outlined by [NovaChat](https://nova.chat/).
This is an early-stage project (hence starting on KickStarter.) While exciting and ambitious, I encourage everyone to do their own research! Learn more and chat with terry_hello (who has done a good job handling questions already!) in [#Privee:matrix.org](https://matrix.to/#/#Privee:matrix.org).
## Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server. Join [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) to experience the fun live, and to find out how to add YOUR server to the game.
| Rank | Hostname | Median MS |
| :--: | :-------------------: | :-------: |
| 1 | helderferreira.io | 470 |
| 2 | maescool.be | 486.5 |
| 3 | matrix.vgorcum.com | 570.5 |
| 4 | mchus.pro | 730 |
| 5 | envs.net | 770 |
| 6 | maunium.net | 983 |
| 7 | matrix.org | 1261 |
| 8 | acmelabs.space | 1282.5 |
| 9 | chatserver.ca | 1387 |
| 10 | productionservers.net | 1433.5 |
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[#twim:matrix.org]: https://matrix.to/#/#TWIM:matrix.org