GNUnet Messenger API: April

Hey there,

So last time I was pretty close to announce a release but I thought about delaying that for reasons of stability and polishing some aspects of the GUI application (messenger-gtk). Now I can at least announce the release of libgnunetchat 0.1.0 (the back-end of the messenger applications I’m working on).

Since last month I implemented a missing feature in the GNUnet Messenger service, fixing some issues with renaming in the service causing crashes and I adjusted a lot in the back-end as well as adding documentation for its release. There have been added some test cases as well which helped to find the problem behind inconsistent usage of lobbies, I referenced last time. The test cases aren’t covering all features of the library (libgnunetchat) yet and at times they fail due to timeouts but it’s far more usable now and from my experience it’s good enough for a first release.

I also want to be clear that the software is pretty much still in development and it’s likely that there will come up more changes or fixes. But at least now applications can point to a proper release they utilize and it should be independent of minor version iterations in GNUnet itself as long as compatibility between nodes is given. It is important to mention that there is still work ongoing on the transport layer of GNUnet getting replaced to address a lot of connection issues at the same time. That means in current state it is still very likely a NAT (for example in your typical homes router box) might make it impossible to message other people through the internet via the GNUnet Messenger service. But that is likely to change with the work on the transport layer.

With that out of the way how is the CLI application (messenger-cli) going, right? Well, it’s difficult. I’ve started a bit on prototyping the layout on paper but since I haven’t ever worked with ncurses or even tried to make some advanced UI in a terminal, I have to admit it’s way more difficult than I originally thought. For example the goal is to make the application usable in as much different sizes and shapes as possible. At the same time every piece of margin, padding or border to make the content of the application more readable fights for space with the content itself. Because you can only make things as small as one character in your terminal.

So for now I’ve started to make separate windows (areas in ncurses you can define) for an accounts list, chats list (for groups and contacts) and messages overview. The idea is to start with those modular areas and later on I will try to merge them together in one view if that can fit. Otherwise there will likely be a consistent navigation with hotkeys to switch back and forth between those areas (this will be necessary if they don’t fit into one terminal at the same time which is likely, especially in tiling desktop environments).

As a result of this work on bugs, release and UI concepts I don’t have a fancy image for you which is a bummer. But I hope next time I will be able to include some animations of the CLI application in action. Anyway if you’re already interested in the API to develop some chat applications or chat bots, you can find the tarball of libgnunetchat 0.1.0 here (and the signature here). As soon as I’m happy with the documentation in the source code of the GTK application, I will package a release as well with the latest release of libgnunetchat as dependency. The manifest for the flatpak is pretty much finished already. So it should get really easy to try it out, once released. In last December I estimated that I could be able to complete the whole project in mid of 2022 (it was an optimistic estimate..) and I still think that’s possible.

Kind regards,
Jacki

Read original article

Popular posts from this blog

GNUnet Messenger API: March

GNUnet Messenger API: September

GNUnet Messenger API: December