libappimage, AppImage’s core library, has just seen its first stable release after the rewrite. Version 1.0.0 was released on April 1, 2019. Read on to see what’s new!
In 2017 we started to modularize and improve the AppImage source code. One of the modules that was created is libappimage. The library mainly consists of desktop integration related functionality and provides a C ABI. It’s used by various AppImage tools, and most AppImage desktop integration solutions.
We’ve then worked on fixing bugs, adding tests and improving the code quality. However, we could never really recommend anyone but us to use this, since there have been so many memory leaks, performance issues and bugs. Therefore, it was decided to start from scratch and rewrite the library. The language of choice was C++11, which was also used in other tools, is sufficiently backwards compatible (i.e., it can be used on the vast majority of all still-supported Linux distributions) and allows for avoiding raw pointer handling (or at least hiding it from the user) which helps prevent segfaults and other bugs.
In the past months, Alexis Lopez Zubieta has been working on this project, and after a lot of development, discussions and reviews, we just released the first version. There’s still a lot of work left, but we decided to release a version for now so you can make use of the many improvements in the rewritten version. Also, the brand new C++ API is mostly finished. Yet, we might introduce some breaking changes in libappimage 1.1.0, since we have to change the interface of one class. Therefore, our
.so files are versioned with both major and minor version for now. From version 2.0.0 on, we plan to use the major version as suffix only.
You can fetch the latest version from GitHub. It will take us some time to prepare everything for Debian packaging, so please be patient. So far, version 0.1.9 of libappimage (the packaged version) is still supported in maintenance mode.
If you have ideas or find bugs, please don’t hesitate to [open an issue)(https://github.com/AppImage/libappimage/issues/). If you have bug fixes, please feel free to send a PR. Contributions welcome!