All Projects → selmf → unarr

selmf / unarr

Licence: LGPL-3.0 license
A decompression library for rar, tar, zip and 7z archives

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to unarr

MangDL
The most inefficient Manga downloader for PC
Stars: ✭ 40 (+14.29%)
Mutual labels:  zip, tar, rar, cbr, cbz, cbt, cb7
comi
ComiGO:Simple, cross-platform manga reader。简单、跨平台的漫画阅读器。シンプルな漫画リーダー。
Stars: ✭ 34 (-2.86%)
Mutual labels:  zip, tar, rar, cbr, cbz
uncompress-react-native
Simple library to decompress files .zip, .rar, .cbz, .cbr in React Native.
Stars: ✭ 36 (+2.86%)
Mutual labels:  zip, rar, cbr, cbz
Libarchive
Multi-format archive and compression library
Stars: ✭ 1,625 (+4542.86%)
Mutual labels:  zip, tar, rar
kthoom
Comic Book Reader in the Browser
Stars: ✭ 97 (+177.14%)
Mutual labels:  cbr, cbz, cbt
Koodo Reader
A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux and Web
Stars: ✭ 2,938 (+8294.29%)
Mutual labels:  cbr, cbz, cbt
Ob3vil1on
Another archive cracker created in python | cracking [zip/7z/rar] by bruteforcing [ NOT MAINTAINED ]
Stars: ✭ 17 (-51.43%)
Mutual labels:  zip, rar, 7z
uncompress.js
Uncompress ZIP, RAR, and TAR files with pure JavaScript
Stars: ✭ 79 (+125.71%)
Mutual labels:  zip, tar, rar
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+520%)
Mutual labels:  zip, tar, rar
Archiver
Easily create & extract archives, and compress & decompress files of various formats
Stars: ✭ 3,373 (+9537.14%)
Mutual labels:  zip, tar, rar
extractor
Compressed files extractor for PHP
Stars: ✭ 23 (-34.29%)
Mutual labels:  zip, tar, rar
Leanify
lightweight lossless file minifier/optimizer
Stars: ✭ 694 (+1882.86%)
Mutual labels:  zip, tar
ZeeArchiver
Zee is an efficient and simple to use Android Archiver and decompressor. It can decompress and compress from-to all the formats supported by the well known 7zip utility. Copyright © 2018 Mahmoud Galal , for support contact me:[email protected]
Stars: ✭ 35 (+0%)
Mutual labels:  zip, 7z
Pyfilesystem2
Python's Filesystem abstraction layer
Stars: ✭ 1,256 (+3488.57%)
Mutual labels:  zip, tar
Ugrep
🔍NEW ugrep v3.1: ultra fast grep with interactive query UI and fuzzy search: search file systems, source code, text, binary files, archives (cpio/tar/pax/zip), compressed files (gz/Z/bz2/lzma/xz/lz4), documents and more. A faster, user-friendly and compatible grep replacement.
Stars: ✭ 626 (+1688.57%)
Mutual labels:  zip, tar
Sharpcompress
SharpCompress is a fully managed C# library to deal with many compression types and formats.
Stars: ✭ 1,397 (+3891.43%)
Mutual labels:  zip, tar
Swcompression
A Swift framework for working with compression, archives and containers.
Stars: ✭ 110 (+214.29%)
Mutual labels:  zip, tar
Libarchivejs
Archive library for browsers
Stars: ✭ 145 (+314.29%)
Mutual labels:  zip, tar
Bit7z
A C++ static library offering a clean and simple interface to the 7-zip DLLs.
Stars: ✭ 159 (+354.29%)
Mutual labels:  zip, tar
Decompress
Extracting archives made easy
Stars: ✭ 316 (+802.86%)
Mutual labels:  zip, tar
Build Status
Linux Build Status
MacOS Build Status
Windows Build Status

(lib)unarr

(lib)unarr is a decompression library for RAR, TAR, ZIP and 7z* archives.

It was forked from unarr, which originated as a port of the RAR extraction features from The Unarchiver project required for extracting images from comic book archives. Zeniko wrote unarr as an alternative to libarchive which didn't have support for parsing filters or solid compression at the time.

While (lib)unarr was started with the intent of providing unarr with a proper cmake based build system suitable for packaging and cross-platform development, it's focus has now been extended to provide code maintenance and to continue the development of unarr, which no longer is maintained.

Getting started

Prebuilt packages

Packaging status

From OBS

.deb package .rpm package

Building from source

Dependencies

(lib)unarr can take advantage of the following libraries if they are present:

  • bzip2
  • xz / libLZMA
  • zlib

More information on what library is used for which purpose can be found in the description for embedded builds.

CMake

mkdir build
cd build
cmake ..
make

... as a static library

cmake .. -DBUILD_SHARED_LIBS=OFF

... with 7z support (see note below)

cmake .. -DENABLE_7Z=ON

By default, (lib)unarr will try to detect and use system libraries like bzip2, xz/LibLZMA and zlib. If this is undesirable, you can override this behavior by specifying:

cmake .. -DUSE_SYSTEM_BZ2=OFF -DUSE_SYSTEM_LZMA=OFF -DUSE_SYSTEM_ZLIB=OFF

Install

make install

Embedded build

Make sure your compiler is C99 compatible, grab the source code, copy it into your project and adjust your build system accordingly.

You can define the following symbols to take advantage of third party libraries:

Symbol Required header Required for (format/method)
HAVE_ZLIB zlib.h faster CRC-32 and Deflate
HAVE_BZIP2 bzlib.h ZIP / Bzip2
HAVE_LIBLZMA lzma.h ZIP / LZMA, XZ(LZMA2)
HAVE_7Z 7z.h 7Z / LZMA, LZMA2, BCJ
_7ZIP_PPMD_SUPPPORT 7Z / PPMd

Make sure the required headers are present in the include path.

Usage

Examples

Check unarr.h and unarr-test to get a general feel for the api and usage.

To build the unarr-test sample application, use:

cmake .. -DBUILD_SAMPLES=ON

Limitations

Unarr was written for comic book archives, so it currently doesn't support:

  • password protected archives
  • self extracting archives
  • split archives

7z support

7z support is currently limited and has to be explicitly enabled at build time.

This is due to a known performance problem in the ANSI-C based 7z extraction code provided by the LZMA SDK that limits its usefulness for large files with solid compression (see zeniko/unarr#4).

Fixing this problem will require modification or replacement of the LZMA SDK code used.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].