{"id":20224988,"url":"https://github.com/antony-jr/qarchive","last_synced_at":"2025-04-10T16:43:24.649Z","repository":{"id":27588106,"uuid":"114011414","full_name":"antony-jr/QArchive","owner":"antony-jr","description":"Async C++ Cross-Platform library that modernizes libarchive using Qt :rocket:. Simply extracts 7z :hamburger:, Tarballs :8ball: and other supported formats by libarchive. :heart:","archived":false,"fork":false,"pushed_at":"2023-12-20T16:57:43.000Z","size":4732,"stargazers_count":88,"open_issues_count":7,"forks_count":26,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-24T14:39:49.352Z","etag":null,"topics":["7zip","compress","cplusplus","cross-platform","easy-to-use","extracts","gz","libarchive","library","qt5","simple","small","tar","zip"],"latest_commit_sha":null,"homepage":"https://antony-jr.github.io/QArchive","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antony-jr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-12-12T16:11:01.000Z","updated_at":"2024-11-26T15:44:21.000Z","dependencies_parsed_at":"2023-12-20T18:08:41.332Z","dependency_job_id":null,"html_url":"https://github.com/antony-jr/QArchive","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antony-jr%2FQArchive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antony-jr%2FQArchive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antony-jr%2FQArchive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antony-jr%2FQArchive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antony-jr","download_url":"https://codeload.github.com/antony-jr/QArchive/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248252747,"owners_count":21072704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["7zip","compress","cplusplus","cross-platform","easy-to-use","extracts","gz","libarchive","library","qt5","simple","small","tar","zip"],"created_at":"2024-11-14T07:10:16.113Z","updated_at":"2025-04-10T16:43:24.626Z","avatar_url":"https://github.com/antony-jr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"artwork/logo_final.png\" height=\"200px\" width=auto alt=\"QArchive Logo\"\u003e  \u003cbr\u003e\n\u003c/p\u003e\n\n\n# QArchive [![GitHub issues](https://img.shields.io/github/issues/antony-jr/QArchive.svg?style=flat-square)](https://github.com/antony-jr/QArchive/issues) [![GitHub forks](https://img.shields.io/github/forks/antony-jr/QArchive.svg?style=flat-square)](https://github.com/antony-jr/QArchive/network) [![GitHub stars](https://img.shields.io/github/stars/antony-jr/QArchive.svg?style=flat-square)](https://github.com/antony-jr/QArchive/stargazers) [![GitHub license](https://img.shields.io/github/license/antony-jr/QArchive.svg?style=flat-square)](https://github.com/antony-jr/QArchive/blob/master/LICENSE) [![Test and Deploy](https://github.com/antony-jr/QArchive/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/antony-jr/QArchive/actions/workflows/tests.yml)\n\nQArchive is a cross-platform C++ library that modernizes libarchive , This library helps you to extract and compress \narchives supported by libarchive. The whole library itself is crafted to work perfectly well with the \nQt event loop and thus its a perfect fit for your Qt projects.\n\nI personally made this project to extract .7z archives in order to create a library that can update Qt Apps installed via\nQt Installer Framework without using the updater tool provided by Qt , because I hated using sub-process and besides\nI wanted a in-built updater for my application and that's not possible with the already provided updater from \nQt Installer Framework.\n\n## Features\n\n* *Single threaded and Non-Blocking API* - Using Qt's Event Loop. (**you can optionally run in a different thread**)\n\n* *Easy to Use API* - Made some effort to match Qt's style.\n\n* *Cyclic API , No use of mutex* - The whole library is fully cyclic and therefore no mutex is used.(Only signals and slots.)\n\n* *Drink the Qt Kool-aid* - In a positive way.\n\n\n**Witness it with your own eyes,**\n\n```\n#include \u003cQCoreApplication\u003e\n#include \u003cQArchive/QArchive\u003e\n\nint main(int argc, char **argv)\n{\n    using QArchive::DiskExtractor;\n    QCoreApplication app(argc, argv);\n    DiskExtractor Extractor(\"Test.7z\");\n    \n    /* Connect Signals and Slots. */\n    QObject::connect(\u0026Extractor , \n                     \u0026DiskExtractor::finished , \n                     \u0026app , \n                     \u0026QCoreApplication::quit);\n    \n    Extractor.start();\n    return app.exec();\n}\n```\n\n# Getting Started\n\nLearn more about **QArchive** at the official [documentation](https://antony-jr.github.io/QArchive).\n\nThe documentation does not document any new changes that happen at the master branch and will only have\ninformation about the released version of the library. If you encounter API breaks in master branch, this\nis intentional, please use the release version. **This situation will change soon in the future, so sorry\nfor the inconvenience.**\n\n## Qt6 Support\n\nStarting from QArchive **v2.2.3**, Qt6 support exists, if you have only Qt6 installed in the system then\nQArchive's cmake should pick that up, if you have both Qt5 and Qt6, QArchive will pick Qt5, you can pass \n```-DQARCHIVE_QT_VERSION_MAJOR=6``` to cmake to force to build QArchive with Qt6 libs.\n\n## Conan\n\n*Thanks to [Eric Riff](https://github.com/ericriff)*.\n\nStarting from version 2.0.1 `QArchive` is available on the [Conan C/C++ package manager](https://conan.io/), which means you can download prebuilt packages for all major platforms (Windows, Linux, macOS, etc).\n\nFind an example on how to consume Conan's precompiled packages in the examples folder.\n\n# Contributors [![QArchive Contributors](https://img.shields.io/github/contributors/antony-jr/QArchive.svg)](https://github.com/antony-jr/QArchive/graphs/contributors)\n\nMy utmost **gratitude goes to these people!** :heart:\n\n\u003ctable\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003e\n            \u003cimg src=\"https://avatars1.githubusercontent.com/u/1927154?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/ardeidae\"\u003eMatthieu Petiot\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=ardeidae\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src=\"https://avatars1.githubusercontent.com/u/660896?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/adriweb\"\u003eAdrien Bertrand\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=adriweb\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n      \u003ctd\u003e\n            \u003cimg src=\"https://avatars1.githubusercontent.com/u/1274384?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/alberthdev\"\u003eAlbert Huang\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=alberthdev\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n      \u003ctd\u003e\n            \u003cimg src=\"https://avatars3.githubusercontent.com/u/11664992?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/HadesD\"\u003eIchiro\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=HadesD\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n      \u003ctd\u003e\n            \u003cimg src=\"https://avatars1.githubusercontent.com/u/187720?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/longseespace\"\u003eLong Nguyen\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=longseespace\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n      \u003ctd\u003e\n            \u003cimg src=\"https://avatars2.githubusercontent.com/u/50304471?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/g-fb\"\u003eg-fb\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=g-fb\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n         \u003ctd\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/2084073?s=400\u0026u=6278d48f6a8eb75af82395593f31af5a960cb95a\u0026v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/dprotti\"\u003eDuilio Protti\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=dprotti\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n\t\u003ctd\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/57375845?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/ericriff\"\u003eEric Riff\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=ericriff\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n\t\u003ctd\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/2747603?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/ZemingLiu\"\u003eGGBond\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=ZemingLiu\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/2444564?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n            \u003csub\u003e\n                \u003cstrong\u003e\n                    \u003ca href=\"https://github.com/DeuxVis\"\u003eDeuxVis\u003c/a\u003e\n                \u003c/strong\u003e\n            \u003c/sub\u003e\u003cbr\u003e\n            \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=DeuxVis\"\u003e💻\u003c/a\u003e\n        \u003c/td\u003e\n\t\u003ctd\u003e\n\t   \u003cimg src=\"https://avatars.githubusercontent.com/u/39350000?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n\t   \u003csub\u003e\n              \u003cstrong\u003e\n                 \u003ca href=\"https://github.com/yosicovich\"\u003eyosicovich\u003c/a\u003e\n\t      \u003c/strong\u003e\n           \u003c/sub\u003e\u003cbr\u003e\n\t   \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=yosicovich\"\u003e💻\u003c/a\u003e \n        \u003c/td\u003e\n        \u003ctd\u003e \n           \u003cimg src=\"https://avatars.githubusercontent.com/u/3681516?v=4\" width=\"100px\"\u003e\u003cbr\u003e \n           \u003csub\u003e \n              \u003cstrong\u003e \n                 \u003ca href=\"https://github.com/tastytea\"\u003etastytea\u003c/a\u003e \n              \u003c/strong\u003e \n           \u003c/sub\u003e\u003cbr\u003e \n           \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=tastytea\"\u003e💻\u003c/a\u003e  \n        \u003c/td\u003e \n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n     \u003ctd\u003e\n       \u003cimg src=\"https://avatars.githubusercontent.com/u/11352254?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n       \u003csub\u003e\n         \u003cstrong\u003e\n            \u003ca href=\"https://github.com/lmussier\"\u003eM. Ludo\u003c/a\u003e\n         \u003c/strong\u003e\n       \u003c/sub\u003e\u003cbr\u003e\n       \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=lmussier\"\u003e💻\u003c/a\u003e\n     \u003c/td\u003e\n     \u003ctd\u003e\n       \u003cimg src=\"https://avatars.githubusercontent.com/u/2918873?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n       \u003csub\u003e\n         \u003cstrong\u003e\n            \u003ca href=\"https://github.com/neheb\"\u003eRosen Penev\u003c/a\u003e\n         \u003c/strong\u003e\n       \u003c/sub\u003e\u003cbr\u003e\n       \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=neheb\"\u003e💻\u003c/a\u003e\n     \u003c/td\u003e\n     \u003ctd\u003e\n       \u003cimg src=\"https://avatars.githubusercontent.com/u/26579016?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n       \u003csub\u003e\n         \u003cstrong\u003e\n            \u003ca href=\"https://github.com/Jihadist\"\u003eAnton\u003c/a\u003e\n         \u003c/strong\u003e\n       \u003c/sub\u003e\u003cbr\u003e\n       \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=Jihadist\"\u003e💻\u003c/a\u003e\n     \u003c/td\u003e\n     \u003ctd\u003e\n       \u003cimg src=\"https://avatars.githubusercontent.com/u/52410353?v=4\" width=\"100px\"\u003e\u003cbr\u003e\n       \u003csub\u003e\n         \u003cstrong\u003e\n            \u003ca href=\"https://github.com/elizabethfeden\"\u003eElizabeth\u003c/a\u003e\n         \u003c/strong\u003e\n       \u003c/sub\u003e\u003cbr\u003e\n       \u003ca href=\"https://github.com/antony-jr/QArchive/commits?author=elizabethfeden\"\u003e💻\u003c/a\u003e\n     \u003c/td\u003e\n  \u003c/tr\u003e \n\u003c/table\u003e\n\nYou can also **become one of them by contributing to this project** , to know more read **[CONTRIBUTING.md](.github/CONTRIBUTING.md)**.\n\n\n# Thank You ![Thank You](https://img.shields.io/badge/Always-Say%20Thank%20You!-blue.svg?style=flat-square)\n\nI really need to thank the developers of these libraries for creating it because QArchive is elegant because of them! :heart:   \n\n* [libarchive](https://github.com/libarchive/libarchive)\n* [Qt](https://github.com/qt)\n\n\n# Support [![Twitter](https://img.shields.io/twitter/url/https/github.com/antony-jr/QArchive.svg?style=social)](https://twitter.com/intent/tweet?text=Checkout%20%23QArchive%20by%20%40antonyjr0%20%20%2C%20its%20cool.%20Try%20it%20at%20https%3A%2F%2Fgithub.com%2Fantony-jr%2FQArchive)\n\nIf 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!   \n\n# License\n\nThe BSD 3-clause \"New\" or \"Revised\" License.\n\nCopyright (C) 2017-present, QArchive Contributors and Antony J.R\n\nAll Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantony-jr%2Fqarchive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantony-jr%2Fqarchive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantony-jr%2Fqarchive/lists"}