QArchive is a cross-platform C++ library that modernizes libarchive , This library helps you to extract and compress archives supported by libarchive. The whole library itself is crafted to work perfectly well with the Qt event loop and thus its a perfect fit for your Qt projects.
I personally made this project to extract .7z archives in order to create a library that can update Qt Apps installed via Qt Installer Framework without using the updater tool provided by Qt , because I hated using sub-process and besides I wanted a in-built updater for my application and thats not possible with the already provided updater from Qt Installer Framework.
-
Single threaded and Non-Blocking API - Using Qt's Event Loop. (you can optionally run in a different thread)
-
Easy to Use API - Made some effort to match Qt's style.
-
Cyclic API , No use of mutex - The whole library is fully cyclic and therefore no mutex is used.(Only signals and slots.)
-
Drink the Qt Kool-aid - In a positive way.
Witness it with your own eyes,
#include <QCoreApplication>
#include <QArchive>
int main(int argc, char **argv)
{
using QArchive::DiskExtractor;
QCoreApplication app(argc, argv);
DiskExtractor Extractor("Test.7z");
/* Connect Signals and Slots. */
QObject::connect(&Extractor ,
&DiskExtractor::finished ,
&app ,
&QCoreApplication::quit);
Extractor.start();
return app.exec();
}
Learn more about QArchive at the official documentation.
My utmost gratitude goes to these people! ❤️
Matthieu Petiot 💻 |
Adrien Bertrand 💻 |
Albert Huang 💻 |
Ichiro 💻 |
You can also become one of them by contributing to this project , to know more read CONTRIBUTING.md.
I really need to thank the developers of this libraries for creating it because QArchive is elegant because of them! ❤️
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!
The BSD 3-clause "New" or "Revised" License.
Copyright (C) 2017 , antony jr.
All Rights Reserved.