Livewire: A native XMPP client for Ubuntu Touch
-
Live discussion at: xmpp:livewire@conference.agnos.is?join
For the past ~2 months, I have been hacking away at making a native XMPP client for Ubuntu Touch. When @brenno.almeida released Greenline, the opportunity was too good to pass up. There exists an XMPP client called Libervia (formerly known as Salut a Toi) that works as a background daemon, and thus could fit pretty much straight into the existing architecture of Greenline.
Many experiments later,
we now have Greenline but yellowthe internals have been completely redone in an unholy abomination of Rust (of course) and Python (because Libervia is written in Python). It's a fully confined app that supports most modern XMPP basics, with a few features that still need to be implemented (e.g. reactions).The client is considered to be in alpha state, but is available on the OpenStore for testing. I consider it functional enough for daily use, but with rough edges. This thread is a discussion/support thread for the app. More specific bug reports should be filed at the git repository: https://git.agnos.is/projectmoon/livewire
You can find it on the OpenStore. I expect a handful of updates in the next days/weeks to address the most glaring bugs, and then to work on proper push notification support, which will be its own interesting journey.
-
@projectmoon
Greenline has ~ 30 MB
Kaidan has 9 MB (XMPP Client in the OpenStore) Kaidan works great,Livewire has ~200 MB Why is Livewire such a heavyweight?
-
@projectmoon
Greenline has ~ 30 MB
Kaidan has 9 MB (XMPP Client in the OpenStore) Kaidan works great,Livewire has ~200 MB Why is Livewire such a heavyweight?
Gotta shove all that Python somewhere. Could possibly be trimmed down. Maybe there are some unnecessary modules.
Libervia was chosen because there is no complete XMPP solution in Rust yet. If there ever is one, I would probably switch to that to reduce the complexity. Possibly will also investigate using the QT XMPP library.
Edit: Indeed 215 MB of the installation size is Python code.
-
@projectmoon Okay, all right. I installed the app, and it looks promising. This could turn out to be something really big. Especially with olmea encryption in all conversations.
-
@Linus67 come join the (currently one man) party in livewire@conference.agnos.is to test things out!
-
Thank you I have been hopeful a working UT OMEMO XMPP chat client would come soon.
This is very heavy but functions which is great.
I have a few questions.
How far away are features like:- OMEMO MUC, In band registration, support multiple accounts, audio/video calls?
If Libervia is a backend is there a possibly it could be merged into the existing messages app? -
@sixwheeledbeast said:
OMEMO MUCNext major item on the list. All the pieces are present, just need to assemble them correctly.
In band registration
I consider it lower priority: something for app stable release, but not for alpha -> beta graduation. Although it's a barrier to new users, it's possible to register elsewhere. However, if someone wants to contribute it earlier, hey ho let's go.
support multiple accounts
Coming soon to a .click near you
audio/video calls?
Faaaaaaaaaaaaaaaaaaar away.
If Libervia is a backend is there a possibly it could be merged into the existing messages app?
Anything is possible. But I won't be doing it. I don't know how the Lomiri messaging app is constructed, exactly, and if it's specific to SMS/MMS or not.
-
audio/video calls
If this is high priority for you, you might want to give DeltaTouch a try. Earlier this weekI tried a videochat with a friend who was using DeltaChat on /e/OS, and it worked fine.
-
@projectmoon So i know, i need to do my own investigations, but uhh
can you explain a little why someone could need this? what is the advantage of your app?
like i am ungoogled searching the meaning of a xmpp client and "olmea" encryption.the app looks great...
-
@projectmoon So i know, i need to do my own investigations, but uhh
can you explain a little why someone could need this? what is the advantage of your app?
like i am ungoogled searching the meaning of a xmpp client and "olmea" encryption.the app looks great...
It is an XMPP client. XMPP/Jabber is an instant messaging standard like Matrix. Older, different, some might say more efficient. But the end result is the same: put text into box, send text to other people. OMEMO (not olmea) is just the name of the end to end encryption used.
-
xmpp client
Xmpp is a decently popular chat protocol with a great number of clients:
https://xmpp.org/software/?category=clientsIt makes a lot of sense for UT to have one or more native clients, too.
-
Nice work @projectmoon looks like a solid project. Never thought that Greenline could be used as a base for anything, the way the app is structured is too "whatsapp-specifc" and with a lot of code shortcuts, a bit hacky to be honest.
I'm seeing that you're building some non python modules into the project, numpy as an example. How are you building that for arm64? Are you cross compiling, building in a arm64 worker, or something else? Thanks!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login