Adiós, Briar GTK — Hola, Briar Desktop

It’s time to say goodbye to Briar GTK — my first attempt to bring Briar to desktop and mobile Linux devices and a project I’ve been working on in my spare time since 2019:

Since September last year I’ve been working with 3 colleagues at Briar on a now officially released desktop client: Briar Desktop.

Screenshot of Briar Desktop showing example chat history

This work got funded by The Prototype Fund and you can download it here or check its source code on Briar’s GitLab.

For those wondering why we started a completely new desktop client and not continued with Briar GTK: all of Briar’s core code is written in Java, so in order to make use of that logic we had to expose a local HTTP API (briar-headless) that got consumed by Briar GTK. This is quite an overhead — every time a new feature gets added to Briar GTK, a new API endpoint has to be implemented and tested in briar-headless and then this information needs to get loaded and parsed by Briar GTK.

With Briar Desktop, we can directly make use of Briar’s Java code: Briar Desktop is written in Kotlin, so instead of having to make HTTP requests, we can directly use the methods implemented in Java. Since Java isn’t very well supported by GTK, we had to go with another UI framework and chose Compose for Desktop, a declarative UI framework we got to love as much as we love Kotlin. In the future, using Compose might allow us to share UI code with the Briar Android application.

With all this happening in the last few months, I now deprecated Briar GTK and python-briar-wrapper — with Briar Desktop already supporting more features, there’s no more any need for them.

Screenshot of Briar Desktop showing example chat history with light theme

Screenshot of Briar Desktop showing about screen