Awesome
QAppImageUpdate
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
<table> <tr align="center"> <td> <img src="https://avatars2.githubusercontent.com/u/1092613?v=4" width="100px"><br> <sub> <strong> <a href="https://github.com/technic">technic93</a> </strong> </sub><br> <a href="https://github.com/antony-jr/QAppImageUpdate/commits?author=technic">💻</a> </td> <td> <img src="https://avatars3.githubusercontent.com/u/516527?v=4" width="100px"><br> <sub> <strong> <a href="https://github.com/lluchs">Lukas Werling</a> </strong> </sub><br> <a href="https://github.com/antony-jr/QAppImageUpdate/commits?author=lluchs">💻</a> </td> <td> <img src="https://avatars1.githubusercontent.com/u/1138094?v=4" width="100px"><br> <sub> <strong> <a href="https://github.com/azubieta">Alexis López Zubieta</a> </strong> </sub><br> <a href="https://github.com/antony-jr/QAppImageUpdate/commits?author=azubieta">💻</a> </td> <td> <img src="https://avatars3.githubusercontent.com/u/2480569?v=4" width="100px"><br> <sub> <strong> <a href="https://github.com/probonopd">probonopd</a> </strong> </sub><br> <a href="https://github.com/antony-jr/QAppImageUpdate/commits?author=probonopd">💻</a> </td> <td> <img src="https://avatars0.githubusercontent.com/u/4068037?v=4" width="100px"><br> <sub> <strong> <a href="https://github.com/kossebau">Friedrich</a> </strong> </sub><br> <a href="https://github.com/antony-jr/QAppImageUpdate/commits?author=kossebau">💻</a> </td> </tr> </table>Acknowledgements
- AppImages - Motivation to start this project.
- zsync (Colin Phipps) - Zsync algorithm's author.
- zsync2 (@TheAssassin) - Helpful references.
- Qt - And Everything else.
Support
If you think that this project is cool then you can give it a :star: or :fork_and_knife: it if you want to improve it with me. I really :heart: stars though!
License
The BSD 3-clause "New" or "Revised" License.
Copyright (C) 2017-2020, Antony jr.
All Rights Reserved.