124 lines
5.9 KiB
Markdown
124 lines
5.9 KiB
Markdown
---
|
|
title: "Updates from the Poezio ecosystem"
|
|
date: 2022-04-02T12:00:00+09:00
|
|
translationKey: 'poezio-0.14'
|
|
tags: [XMPP, Poezio, Slixmpp, OMEMO]
|
|
draft: true
|
|
---
|
|
|
|
Releases have happened recently that revolve around [Poezio][poezio], a TUI
|
|
(Terminal UI) client for XMPP, including Poezio itself ([0.14][poezio014]),
|
|
its backend XMPP library [Slixmpp][slix], and also the
|
|
[poezio][poezio-omemo] and [slixmpp][slix-omemo] plugins for OMEMO.
|
|
|
|
# Many bug fixes and improvements
|
|
|
|
[Mathieui][mathieui] has already made a proper [release note for
|
|
Slixmpp][slix180] for it and I invite you to read it! It includes many
|
|
bugfixes of course, and internal changes around async handling, that may
|
|
reflect on some of the APIs you are using.
|
|
|
|
Poezio has also seen many improvements.
|
|
|
|
Internally, for one, our default branch has also been moved to "main", many
|
|
type hints have been added, implicit casts (safeJID) have been removed, lots
|
|
of event handlers and calls are now async, APIs from Slixmpp are being used
|
|
instead of redoing our own, many refactoring, various performance
|
|
improvements.
|
|
|
|
A license change has happened, and Poezio is now under GPLv3+! While I am not
|
|
exactly in favour of intellectual property[^0], this is a straightforward
|
|
lever we have against capitalism[^1]. Poezio being a prime resource for
|
|
Slixmpp examples, GPL code should reasonably ensure that the 4 freedoms reach
|
|
end-users. In practice, this should allow for poezio-omemo to be merged into
|
|
Poezio. I am now personally hoping for Slixmpp to change its license as well.
|
|
|
|
[^0]: *TODO: write about this.* A TL;DR would certainly be "abolish intellectual
|
|
property, and private property in general".
|
|
[^1]: When they don't decide to ignore it and give us the finger.
|
|
|
|
And other changes more visible to users! To name a few, quality of life
|
|
improvements such as `xmpp:...?join` URIs handling in `/join`, impromptu rooms
|
|
creation is now more reliable and creates rooms with shorter names. Read more
|
|
[in the changelog][poezio-changelog].
|
|
|
|
Archive handling ([MAM][XEP-0313]) was already in the previous release, but
|
|
has been reworked and should now be more reliable. Some work around storing
|
|
message IDs -- that our log format doesn't do -- will be needed in the future
|
|
to allow for easier message deduplication.
|
|
|
|
Plugins have seen changes as well. A new `untrackme` plugin replaces the now
|
|
deprecated `remove_get_trackers`. [Link Mauve][linkmauve] has also developped
|
|
a `sticker` plugin (to send them), similar in essence to what [Movim][movim]
|
|
has been doing for ages. Rich presence (activity, gaming, mood and user tune)
|
|
has been removed from Poezio core and moved in the `user_extras` plugin. And
|
|
again many fixes.
|
|
|
|
Many of these fixes have been realized by [mathieui][mathieui], who is by far
|
|
the biggest committer on the release, and in general probably the person with
|
|
the best understanding of the project. Thanks also to louiz for providing the
|
|
infrastructure all this time, and to eijebong, Ge0rG, Kaghav Gururajan,
|
|
kaliko, Thomas Hrnciar and southerntofu for the many patches.
|
|
|
|
# Encryption
|
|
|
|
The Poezio `E2EEPlugin` API has been improved to accomodate changes in
|
|
poezio-omemo, slixmpp-omemo and changes of the OMEMO backend library. Two
|
|
plugins which are also seeing changes!
|
|
|
|
Heartbeats are now supported. Heartbeats are meta-messages which transfer only
|
|
cryptographic key material (nothing else) and are used to strengthen OMEMO's
|
|
forward secrecy. This is particularly relevant on clients like Poezio that can
|
|
stay running in the back for some time, receiving messages without replying.
|
|
|
|
Some other changes include colored fingerprints using the [Consistent Color
|
|
Generation][XEP-0392] document -- such as specified in the current (0.8)
|
|
[OMEMO][XEP-0384] spec, and sending encrypted media (aesgcm URIs).
|
|
|
|
What hasn't changed is that this plugin lacks a UI and trust management.
|
|
Hopefully this should come soon, with a little motivation to do UI work.
|
|
|
|
# What comes next
|
|
|
|
All in all, there aren't (m)any revolutionary changes, but with these releases
|
|
come many fixes for paper cuts that hopefully make users happier. This makes
|
|
me think that even though Poezio is far from being perfect, there doesn't seem
|
|
to be many important things missing.
|
|
|
|
There are however changes that would require a lot of refactoring, such as a
|
|
multi-account feature, or easier maintainance in general.
|
|
|
|
We have decided to start migrating Poezio to Rust, in part to be able to
|
|
refactor the project more easily, and also because it's a language we've come
|
|
to appreciate over the years with experience in other projects, and more
|
|
specifically with [xmpp-rs][xmpp-rs], an XMPP Rust library.
|
|
|
|
All of this will happen right after the release, and we invite interested
|
|
people to join the effort!
|
|
|
|
[poezio]: https://lab.louiz.org/poezio/poezio
|
|
[slix]: https://lab.louiz.org/poezio/slixmpp
|
|
[poezio-omemo]: https://lab.louiz.org/poezio/poezio-omemo
|
|
[slix-omemo]: https://lab.louiz.org/poezio/slixmpp-omemo
|
|
[movim]: https://movim.eu
|
|
|
|
[mathieui]: https://mathieui.net
|
|
[linkmauve]: https://linkmauve.fr
|
|
|
|
[poezio014]: https://lab.louiz.org/poezio/poezio/-/tags/v0.14
|
|
[poezio-changelog]: https://lab.louiz.org/poezio/poezio/-/raw/v0.14/CHANGELOG
|
|
[slix180]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.0
|
|
[slix181]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.1
|
|
[slix182]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.2
|
|
[poezio-omemo050]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.0
|
|
[poezio-omemo051]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.1
|
|
[poezio-omemo060]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.6.0
|
|
[slix-omemo060]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.0
|
|
[slix-omemo061]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.1
|
|
[slix-omemo070]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.7.0
|
|
|
|
[XEP-0313]: https://xmpp.org/extensions/xep-0313.html
|
|
[XEP-0384]: https://xmpp.org/extensions/xep-0384.html
|
|
[XEP-0392]: https://xmpp.org/extensions/xep-0392.html
|
|
|
|
[xmpp-rs]: https://xmpp.rs
|