UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Livewire: A native XMPP client for Ubuntu Touch

    Scheduled Pinned Locked Moved App Development
    20 Posts 7 Posters 268 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P Offline
      projectmoon
      last edited by projectmoon

      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 yellow the 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.

      Linus67L nbdynlN 2 Replies Last reply Reply Quote 4
      • Linus67L Offline
        Linus67 @projectmoon
        last edited by

        @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?

        Pixel 3a, works with NextCloud, pihole, Wireguard VPN, Trilium, GhostCloud, Paperless ngx...and a lot of great apps from the Open Store.
        Lenovo Tab M10 HD TB-X306X LTE

        P 1 Reply Last reply Reply Quote 0
        • P Offline
          projectmoon @Linus67
          last edited by projectmoon

          @Linus67 said:

          @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.

          Linus67L 1 Reply Last reply Reply Quote 0
          • Linus67L Offline
            Linus67 @projectmoon
            last edited by

            @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.

            Pixel 3a, works with NextCloud, pihole, Wireguard VPN, Trilium, GhostCloud, Paperless ngx...and a lot of great apps from the Open Store.
            Lenovo Tab M10 HD TB-X306X LTE

            P 1 Reply Last reply Reply Quote 0
            • P Offline
              projectmoon @Linus67
              last edited by

              @Linus67 come join the (currently one man) party in livewire@conference.agnos.is to test things out!

              1 Reply Last reply Reply Quote 0
              • S Offline
                sixwheeledbeast
                last edited by

                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?

                P MoemM 2 Replies Last reply Reply Quote 0
                • P Offline
                  projectmoon @sixwheeledbeast
                  last edited by projectmoon

                  @sixwheeledbeast said:
                  OMEMO MUC

                  Next 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.

                  1 Reply Last reply Reply Quote 0
                  • MoemM Offline
                    Moem @sixwheeledbeast
                    last edited by

                    @sixwheeledbeast said:

                    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.

                    Is currently using an Op5t
                    Also owns an Op1, a BQ E4.5, an Xperia X, a Nothing Phone 1, and a Rabbit R1 as well as a BQ tablet and a Pinetab2. Please, someone... make it stop.

                    1 Reply Last reply Reply Quote 0
                    • nbdynlN Offline
                      nbdynl @projectmoon
                      last edited by

                      @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...

                      P MoemM 2 Replies Last reply Reply Quote 0
                      • P Offline
                        projectmoon @nbdynl
                        last edited by

                        @nbdynl said:

                        @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.

                        nbdynlN 1 Reply Last reply Reply Quote 1
                        • MoemM Offline
                          Moem @nbdynl
                          last edited by

                          @nbdynl said:

                          xmpp client

                          Xmpp is a decently popular chat protocol with a great number of clients:
                          https://xmpp.org/software/?category=clients

                          It makes a lot of sense for UT to have one or more native clients, too.

                          Is currently using an Op5t
                          Also owns an Op1, a BQ E4.5, an Xperia X, a Nothing Phone 1, and a Rabbit R1 as well as a BQ tablet and a Pinetab2. Please, someone... make it stop.

                          1 Reply Last reply Reply Quote 1
                          • brenno.almeidaB Offline
                            brenno.almeida
                            last edited by

                            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!

                            P 1 Reply Last reply Reply Quote 0
                            • nbdynlN Offline
                              nbdynl @projectmoon
                              last edited by

                              @projectmoon thanks for the response, u aswell @moem

                              Another project to look into, i grew up with irc, but yea that is kinda not so safe at all xD, wel atleast unless you mask your identity but i cant remember how i did all that back in the days

                              P 1 Reply Last reply Reply Quote 0
                              • P Offline
                                projectmoon @nbdynl
                                last edited by projectmoon

                                @nbdynl with XMPP, you can joined IRC channels via a bridge called biboumi. Very easy to set up (if you run an XMPP server; otherwise, the provider you use might have it).

                                1 Reply Last reply Reply Quote 1
                                • P Offline
                                  projectmoon @brenno.almeida
                                  last edited by

                                  @brenno.almeida said:

                                  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!

                                  Thanks! The original reason I chose to use Greenline as the base was because Libervia is written in Python, Greenline is written in Python, Libervia acts as a daemon. All the pieces just kinda fit together. But then I wanted to make it confined, and then I a did a Rust, and now we have the current abomination!

                                  As for building the Python part, there are two builds. There is the optional Nuitka (Python native compiler) backend build, which absolutely requires running on a native host for the architecture. This was an experiment to see if Libervia would run/start faster. It does not. At least, not enough to make it worth waiting for a 50 minute Python native compilation.

                                  The regular backend, which is using Rust's PyO3, is just regular cross-compiled via clickable build. The only reason Nuitka requires a native build is because it simply does not do cross-compilation.

                                  1 Reply Last reply Reply Quote 0
                                  • adorsazA Offline
                                    adorsaz
                                    last edited by

                                    Thanks for this application, I miss a good XMPP client on Ubuntu Touch (Kaidan seems to not support MUC and MAM with my XMPP provider).

                                    I've seen on the repository there's a CLAUDE.md file and I'm a bit scared of vibe coded applications. Are you using Claude to fully write the application or are you using it as an assistant but still create source code yourself ?

                                    P 1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      projectmoon @adorsaz
                                      last edited by

                                      @adorsaz said:

                                      Thanks for this application, I miss a good XMPP client on Ubuntu Touch (Kaidan seems to not support MUC and MAM with my XMPP provider).

                                      I've seen on the repository there's a CLAUDE.md file and I'm a bit scared of vibe coded applications. Are you using Claude to fully write the application or are you using it as an assistant but still create source code yourself ?

                                      It is not vibe coded. LLMs were/are used to do most of the boring mechanical work that I can't be arsed to poke around for an hour changing, like changing qt method parameters and call-sites everywhere. The architecture of the app itself is loosely based on Indra (internal Actix event stream-esque actor handling magic).

                                      1 Reply Last reply Reply Quote 1
                                      • S Offline
                                        sixwheeledbeast
                                        last edited by

                                        Most public IRC Networks have easy access to cloaking now.
                                        I seem to be having issues with recieving messages in Livewire. I can send and read my own messages to another person from Livewire but they only ever show one tick. The messages from the other person dont appear at all in Livewire client not even errors just silence. Other clients show them fine.
                                        I also have 2 unread messages on the notification side app menu but nothing is unread.

                                        P 1 Reply Last reply Reply Quote 0
                                        • P Offline
                                          projectmoon @sixwheeledbeast
                                          last edited by

                                          @sixwheeledbeast did you mark the app as unsuspended in UT tweak tool?

                                          S 1 Reply Last reply Reply Quote 0
                                          • S Offline
                                            sixwheeledbeast @projectmoon
                                            last edited by sixwheeledbeast

                                            @projectmoon Only after I had these issues. I'm starting to get messages through now. There is no read confirmation from what I can tell. I now have it were the chat has disappeared as the last thing I sent was an image. I have to use contacts to find chat. The invisible messages I got before this are stuck as unread on the appbar

                                            1 Reply Last reply Reply Quote 0

                                            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
                                            • First post
                                              Last post