/QAppImageUpdate

Qt5 library and plugin for updating AppImages. :heart:

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

QAppImageUpdate GitHub issues GitHub stars GitHub license Codacy Badge Test and Deploy

Note: QAppImageUpdate was formerly known as "AppImage Updater Bridge". As of v2.0.0 of the project, it is now known as QAppImageUpdate with breaking changes to everything. So if you want to use v1.x, you can use the git tag v1.1.9 which is latest version of v1.x

QAppImageUpdate is a delta updater based on the zsync algorithm for the AppImage format, Using this library you can delta update any AppImage file, That is, Only download the binary data which you need to get the latest version, Therefore saving your time and internet.

QAppImageUpdate is not the official library to do this stuff, The official library is here which is also written in C++ but with no real Qt support , Thats why this library is built.

This library gives absolute support for Qt, Infact, All you need is the minimal installation of Qt(i.e, base).

Features

  • Single Threaded , Non-Blocking API - Using Qt's Event Loop.(Optionally , You can use a seperate thread.)

  • Easy to Use API - Made some effort to match Qt's style.

  • Cyclic and Async API - The whole library is fully cyclic and Async.(Only signals and slots.)

  • Pure C++ - Ported most of the legacy Zsync code to C++.

  • No third party libraries needed - The reason why you want to use this library.

  • Drink the Qt Kool-aid - In a positive way.

  • Optional Decentralized Update with BitTorrent Protocol - Reduce load on server.

Witness it with your own eyes,

#include <QCoreApplication>
#include <QAppImageUpdate>

int main(int argc, char **argv) 
{
    QCoreApplication app(argc, argv);
    QAppImageUpdate updater;

    QObject::connect(&updater, &QAppImageUpdate::finished, 
		      &app, &QCoreApplication::quit);
    
    updater.setShowLog(true);
    updater.start();
    return app.exec();
}

Try it

See this library in action at this repo which reimplements the official AppImageUpdater Tool using this library.

Getting Started

For Documentation on old versions, See Documentation Versions.

Please refer the official Documentation.

Contributors Contributors


technic93
💻

Lukas Werling
💻

Alexis López Zubieta
💻

probonopd
💻

Friedrich
💻

Acknowledgements Thank You

Support Twitter

If you think that this project is cool then you can give it a ⭐ or 🍴 it if you want to improve it with me. I really ❤️ stars though!

License

The BSD 3-clause "New" or "Revised" License.

Copyright (C) 2017-2020, Antony jr.
All Rights Reserved.