0bbfaef58d | ||
---|---|---|
.github | ||
shared-infrastructure@0ea21d9e2a | ||
src | ||
tests | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
Directory.Build.props | ||
Directory.Build.targets | ||
LICENSE | ||
NuGet.config | ||
THIRD-PARTY-NOTICES.txt | ||
ZlibStream.sln | ||
benchmarks.md | ||
ci-build.ps1 | ||
ci-pack.ps1 | ||
ci-test.ps1 | ||
readme.md | ||
stylecop.json |
readme.md
SixLabors.ZlibStream
A WIP fork of zlib.managed with target framework, API changes (hence fork) and performance improvements.
The goal is to introduce as near-native performance as possible while implementing missing features from Zlib into the codebase.
Targets netstandard1.3+
Why?
DeflateStream in the .NET framework is a wrapper around the Intel fork of Zlib. This fork sacrifices compression of sparse data for performance gains which results in huge differences between the output size of certain images on Windows compared to other platforms. By producing a high performance managed implementation we can guarantee excellent cross platform image compression.
Building the Project
- Using Visual Studio 2019
- Make sure you have the latest version installed
- Make sure you have the .NET 5 SDK installed
Alternatively, you can work from command line and/or with a lightweight editor on both Linux/Unix and Windows:
To clone ZlibStream locally, click the "Clone in [YOUR_OS]" button above or run the following git commands:
git clone https://github.com/SixLabors/ZlibStream
This repository contains git submodules. To add the submodules to the project, navigate to the repository root and type:
git submodule update --init --recursive
Benchmarks
Benchmarks against the Canterbury corpus, a collection of files intended for use as a benchmark for testing lossless data compression algorithms can be found here.