All Projects → squid-box → SevenZipSharp

squid-box / SevenZipSharp

Licence: LGPL-3.0 License
Fork of SevenZipSharp on CodePlex

Programming Languages

C#
18002 projects
XSLT
1337 projects

Projects that are alternatives of or similar to SevenZipSharp

go7z
A native Go 7z archive reader.
Stars: ✭ 46 (-73.1%)
Mutual labels:  compression, 7z, 7zip
Bit7z
A C++ static library offering a clean and simple interface to the 7-zip DLLs.
Stars: ✭ 159 (-7.02%)
Mutual labels:  compression, extraction
7 Zip Zstd
7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard
Stars: ✭ 2,150 (+1157.31%)
Mutual labels:  7z, 7zip
PLzmaSDK
PLzmaSDK is (Portable, Patched, Package, cross-P-latform) Lzma SDK.
Stars: ✭ 28 (-83.63%)
Mutual labels:  compression, 7zip
Jarchivelib
A simple archiving and compression library for Java
Stars: ✭ 162 (-5.26%)
Mutual labels:  compression, extraction
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 (-79.53%)
Mutual labels:  7z, 7zip
Archive7z
This library provides handling of 7z files in PHP
Stars: ✭ 73 (-57.31%)
Mutual labels:  7z, 7zip
react-native-compressor
The lightweight library for compress image, video, and audio with an awesome experience
Stars: ✭ 157 (-8.19%)
Mutual labels:  compression
ti recover
Appcelerator Titanium APK source code recovery tool
Stars: ✭ 17 (-90.06%)
Mutual labels:  extraction
ndzip
A High-Throughput Parallel Lossless Compressor for Scientific Data
Stars: ✭ 19 (-88.89%)
Mutual labels:  compression
rust-huffman-compress
A Rust library for Huffman compression given a propability distribution over arbitrary symbols
Stars: ✭ 18 (-89.47%)
Mutual labels:  compression
django-brotli
Django middleware that compresses response using brotli algorithm.
Stars: ✭ 16 (-90.64%)
Mutual labels:  compression
SSD-Pruning-and-quantization
Pruning and quantization for SSD. Model compression.
Stars: ✭ 19 (-88.89%)
Mutual labels:  compression
client-compress
A JavaScript based in-browser client-side image compression library
Stars: ✭ 32 (-81.29%)
Mutual labels:  compression
exhal
Compression and decompression tools for NES, SNES, and Game Boy games by HAL Laboratory
Stars: ✭ 54 (-68.42%)
Mutual labels:  compression
lrkFM
Awesome, (ad) free, open source file manager for Android
Stars: ✭ 44 (-74.27%)
Mutual labels:  7zip
lepcc
Point Cloud Compression used in i3s Scene Layer Format
Stars: ✭ 22 (-87.13%)
Mutual labels:  compression
naf
Nucleotide Archival Format - Compressed file format for DNA/RNA/protein sequences
Stars: ✭ 35 (-79.53%)
Mutual labels:  compression
GI
Sequitur and RePair grammar induction algorithms implementation
Stars: ✭ 20 (-88.3%)
Mutual labels:  compression
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-71.93%)
Mutual labels:  compression

This is a fork from tomap's fork of the original CodePlex project.

Continuous Integration

Branch Appveyor Coveralls NuGet Lite NuGet
master Build status Coverage Status NuGet Badge NuGet Badge
dev Build status Coverage Status

Changes from original project

As required by the GNU GPL 3.0 license, here's a rough list of what has changed since the original CodePlex project, including changes made in tomap's fork.

  • Target .NET framework changed from 2.0 to .NET 4.5, .NET Core 3.1 and .NET Standard 2.0 (ie. .NET Framework 4.5+, .Net Core 2.0+, Mono 5.4+, UWP 10.0.16299+, Unity 2018.1+).
  • Produces two multi-framework NuGet packages, one full-feature package and a Lite variant without SFX support (and significantly smaller size).
  • Continous Integration added, both building and deploying, and code test coverage.
  • Tests re-written to NUnit 3 test cases.
  • General code cleanup.

Original project information below, some information might be outdated or won't apply to this fork:


Project Description

Managed 7-zip library written in C# that provides data (self-)extraction and compression (all 7-zip formats are supported). It wraps 7z.dll or any compatible one and makes use of LZMA SDK.

General

SevenZipSharp is an open source wrapper for 7-zip released under LGPL v3.0. It exploits the native 7zip dynamic link library through its COM interface and exports classes to work with various file archives. The project appeared as an improvement of http://www.codeproject.com/KB/DLL/cs_interface_7zip.aspx. It supports .NET and Windows Mobile .NET Compact.

The solution consists of SevenZipSharp library itself, console, WinForms and WPF test applications and the documentation. All are built with Microsoft Visual Studio 2008 or 2010 and under .NET 2.0 (up to 4.0). Sandcastle is used to build the library documentation. SevenZipSharp uses JetBrains ReSharper to maintain the quality of the code and NDepend to collect code statistics and audit the whole project. Special thanks to SciTech Software for .NET Memory Profiler.

Check SVN for the latest version of SevenZipSharp.

Quick start

SevenZipSharp exports three main classes - SevenZipExtractor, SevenZipCompressor and SevenZipSfx. SevenZipExtractor is a 7-zip unpacking front-end, it allows either to extract archives or LZMA-compressed byte arrays. SevenZipCompressor is a 7-zip pack ingfront-end, it allows either to compress archives or byte arrays. SevenZipSfx is a special class to create self-extracting archives. It uses the embedded sfx module by Oleg Scherbakov . LzmaEncodeStream/LzmaDecodeStream are special fully managed classes derived from Stream to store data compressed with LZMA and extract it. See SevenZipTest/Program.cs for simple code examples; SevenZipTestForms is the GUI demo application. You may find useful the SevenZipSharp documentation provided in CHM format. On Windows XP SP2 or later or Vista unblock the file to view it correctly.

Native libraries

SevenZipSharp requires a 7-zip native library to function. You can specify the path to a 7-zip dll (7z.dll, 7za.dll, etc.) in LibraryManager.cs at compile time, your app.config or via SetLibraryPath() method at runtime. + "7z.dll" is the default path. For 64-bit systems, you must use the 64-bit versions of those libraries. 7-zip ships with 7z.dll, which is used for all archive operations (usually it is "Program Files\7-Zip\7z.dll"). 7za.dll is a light version of 7z.dll, it supports only 7zip archives. You may even build your own library with formats you want from 7-zip sources. SevenZipSharp will work with them all.

Main features

  • Encryption and passwords are supported.
  • Since the 0.26 release, archive properties are supported.
  • Since the 0.28 release, multi-threading is supported.
  • Since the 0.29 release, streaming is supported.
  • Since the 0.41 release, you can specify the compression level and method.
  • Since the 0.50 release, archive volumes are supported.
  • Since the 0.51 release, archive updates are supported (0.52 - ModifyArchive). You must use the most recent 7z.dll (v>=9.04) for this feature.
  • Since the 0.61 release, Windows Mobile ARM platforms are supported.
  • Since the 0.62 release, extraction from SFX archives, as well as some other formats with embedded archives is supported.

Extraction is supported from any archive format in InArchiveFormat - such as 7-zip itself, zip, rar or cab and the format is automatically guessed by the archive signature (since the 0.43 release). You can compress streams, files or whole directories in OutArchiveFormat - 7-zip, Xz, Zip, GZip, BZip2 and Tar. Please note that GZip and BZip2 compresses only one file at a time.

SevenZipSharpMobile (SevenZipSharp for Windows Mobile) does not differ much from its big brother. See the difference table below.

Self-extracting archives

SevenZipSfx appeared in the 0.42 release. It supports custom sfx modules. The most powerful one is embedded in the assembly, the other lie in SevenZip/sfx directory. Apart from usual sfx, you can make even small installations with the help of SfxSettings scenarios. Refer to the "configuration file parameters" for the complete command list.

Advanced work with SevenZipCompressor

SevenZipCompressor.CustomParameters is a special property to set compression switches, compatible with command line switches of 7z.exe. The complete list of those switches is in 7-zip.chm of 7-Zip installation. For example, to turn on multi-threaded compression, code .CustomParameters.Add("mt", "on"); For the complete switches list, refer to SevenZipDoc.chm in the 7-zip installation.

Conditional compilation symbols

These compilation symbols are supported: UNMANAGED.

  • UNMANAGED allows the main COM part of SevenZipSharp to be built.
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].