/QArchive

:dog: C++ Cross-Platform library :ring: that Modernizes :rocket: libarchive using Qt5 :paintbrush: . Simply extracts 7z :hamburger: , Tarballs :8ball: , RAR :briefcase: and other supported formats by libarchive. :heart:

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

QArchive Poster

C++ Cross-Platform library ๐Ÿ’ that Modernizes ๐Ÿš€ libarchive using Qt5 ๐Ÿ–Œ๏ธ. Simply extracts 7z ๐Ÿ” , Tarballs๐ŸŽฑ , RAR ๐Ÿ’ผ
and other supported formats by libarchive. โค๏ธ
--Antony Jr.

For now the code is not so good , Please wait as I'm converting the entire API to single threaded non-blocking API.

QArchive GitHub issues GitHub forks GitHub stars GitHub license Codacy Badge BuildStatus

For a long time I've been searching for a easy to use archive library for C++ with Qt support , I came accross
libarchive , it was super cool โค๏ธ but it did'nt have a official C++ binding. Some C++ Wrappers for libarchive exists
like moor but I needed something so simple as 1,2,3 and also support Qt's event loop.

So QArchive is the result of the above ๐Ÿถ , it is a very small C++ Cross-Platform library ๐Ÿ’ that Modernizes ๐Ÿš€ libarchive using Qt5 ๐Ÿ–Œ๏ธ . Simply extracts 7z ๐Ÿ” , Tarballs ๐ŸŽฑ , RAR ๐Ÿ’ผ and other supported formats by libarchive. โค๏ธ.

QArchive can be easily integrated into your project because its just a header and a source file! it is also non-blocking
so its best suited for your Qt Projects!

Witness QArchive with your own eyes!

QArchive Poster 2

Installation

Just execute this command on your project folder and everything will be done for you!
This requires requests to be installed , so make sure you have installed requests for python. This applies for all platforms.

 $ python -c "from requests import get;exec(get('https://git.io/vbbC1').content)"

or You can also add this project as a git submodule.

Getting Started

Learn more about QArchive at the official documentation.

Insights

What can this library do ,

  • Can extract all archives which are supported by libarchive , (i.e) tar, gzip, bzip, 7z, zip, rar, xar
    and much more!
  • Extract and Read encrypted archives.
  • Give progress on the extraction.
  • Can give file information about the files inside the archive.
  • Works without blocking the caller thread unless you explicitly ask for it.
  • Works just like any other qt library.
  • Does not crash your application.

What can't this library do ,

  • Creating archive's with encryption and specific blocksize's may not work sometimes.
  • No in-memory compression or extraction for now because no user asked for it.

Contributors QArchive Contributors

My utmost gratitude goes to these people! โค๏ธ


Matthieu Petiot
๐Ÿ’ป

Adrien Bertrand
๐Ÿ’ป

You can also become one of them by contributing to this project , to know more read CONTRIBUTING.md.

Thank You Thank You

I really need to thank the developers of this libraries for creating it because QArchive is elegant because of them! โค๏ธ

Support Liberapay 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!

If you want to do something that stands out then you can click the donate button at the top to make a monthly donation , So
I will make sure that I stay healthy and keep on to do my work. ๐Ÿ’ผ Supporting me means supporting all of my projects , So
you are like Tony Stark โค๏ธ who backs Spider-Man! Thank you for your extra care! ๐Ÿถ

You can also tweet about me on twitter , get connected with me @antonyjr0

Thank You! ๐Ÿ˜บ

License

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

Copyright (C) 2017 , antony jr.
All Rights Reserved.