BSD 3-Clause "New" or "Revised" License

项目介绍

antony-jr/QArchive 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前获得 92 个 Star、28 次 Fork。

仓库全名
antony-jr/QArchive
开源许可证
BSD 3-Clause "New" or "Revised" License
Star 数
92
Fork 数
28
未关闭 Issue
7

README 摘要

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

QArchive 用什么语言开发?

主要使用 C++ 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前有 92 个 Star。

QArchive 可以免费商用吗?

仓库采用 BSD 3-Clause "New" or "Revised" License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 QArchive 的源码?

可以直接克隆仓库:git clone https://github.com/antony-jr/QArchive.git;安装与运行步骤见仓库 README。

QArchive 最近还在维护吗?

仓库最近一次更新为 2023年12月21日,当前有 7 个未关闭 Issue;Star 数为 92,可作为社区活跃度的参考。

关于

Async C++ Cross-Platform library that modernizes libarchive using Qt :rocket:. Simply extracts 7z :hamburger:, Tarballs :8ball: and other supported formats by libarchive. :heart:

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
240
价值分
72
活跃状态
活跃

语言占比

C
C++
CMake
CSS
JavaScript
Meson
Python
QMake
Shell

Release

README

QArchive Logo

QArchive GitHub issues GitHub forks GitHub stars GitHub license Test and Deploy

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 that’s not possible with the already provided updater from Qt Installer Framework.

Features

  • 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/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();
}

Getting Started

Learn more about QArchive at the official documentation.

The documentation does not document any new changes that happen at the master branch and will only have information about the released version of the library. If you encounter API breaks in master branch, this is intentional, please use the release version. This situation will change soon in the future, so sorry for the inconvenience.

Qt6 Support

Starting from QArchive v2.2.3, Qt6 support exists, if you have only Qt6 installed in the system then QArchive’s cmake should pick that up, if you have both Qt5 and Qt6, QArchive will pick Qt5, you can pass -DQARCHIVE_QT_VERSION_MAJOR=6 to cmake to force to build QArchive with Qt6 libs.

Conan

Thanks to Eric Riff.

Starting from version 2.0.1 QArchive is available on the Conan C/C++ package manager, which means you can download prebuilt packages for all major platforms (Windows, Linux, macOS, etc).

Find an example on how to consume Conan’s precompiled packages in the examples folder.

Contributors QArchive Contributors

My utmost gratitude goes to these people! :heart:


Matthieu Petiot
💻

Adrien Bertrand
💻

Albert Huang
💻

Ichiro
💻

Long Nguyen
💻

g-fb
💻

Duilio Protti
💻

Eric Riff
💻

GGBond
💻

DeuxVis
💻

yosicovich
💻

tastytea
💻

M. Ludo
💻

Rosen Penev
💻

Anton
💻

Elizabeth
💻

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 these libraries for creating it because QArchive is elegant because of them! :heart:

Support Twitter

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 © 2017-present, QArchive Contributors and Antony J.R

All Rights Reserved.

评论

暂无评论