ZlibCore 2.0.1
dotnet add package ZlibCore --version 2.0.1
NuGet\Install-Package ZlibCore -Version 2.0.1
<PackageReference Include="ZlibCore" Version="2.0.1" />
<PackageVersion Include="ZlibCore" Version="2.0.1" />
<PackageReference Include="ZlibCore" />
paket add ZlibCore --version 2.0.1
#r "nuget: ZlibCore, 2.0.1"
#:package ZlibCore@2.0.1
#addin nuget:?package=ZlibCore&version=2.0.1
#tool nuget:?package=ZlibCore&version=2.0.1
zlib.net
Managed version of the ZLIB compression library ported to .NET Core
This port is based on the 100% managed version of the library from ComponentAce.
Installation
dotnet add package ZlibCore
Versions up to 1.1.0 were published under the misspelled ID zlib.net-mutliplatform. From 2.0.0 the package is ZlibCore.
Targets netstandard2.0, netstandard2.1 and net8.0. The Span/Memory overloads and DisposeAsync are available on netstandard2.1 and net8.0.
Usage
using ComponentAce.Compression.Libs.zlib;
// Compress
var compressed = new MemoryStream();
using (var zout = new ZOutputStream(compressed, zlibConst.Z_DEFAULT_COMPRESSION))
{
zout.Write(data, 0, data.Length);
zout.Finish();
result = compressed.ToArray(); // ZOutputStream disposes the target stream, so read it before disposing
}
// Decompress
var decompressed = new MemoryStream();
using (var zout = new ZOutputStream(decompressed))
{
zout.Write(compressedData, 0, compressedData.Length);
zout.Finish();
result = decompressed.ToArray();
}
// Async (netstandard2.1 / net8.0): DisposeAsync finishes the stream without blocking on the target
await using (var zout = new ZOutputStream(target, zlibConst.Z_DEFAULT_COMPRESSION, leaveOpen: true))
{
await zout.WriteAsync(data);
}
await using (var zin = new ZInputStream(source))
{
int read = await zin.ReadAsync(buffer.AsMemory());
}
Migrating from 1.x
Switch the package reference to ZlibCore. The namespace and assembly name are unchanged. Breaking changes:
ZInputStreamis now aStreamrather than aBinaryReader.Read(byte[], int, int)returns decompressed data (previously it returned raw bytes from the underlying stream) and returns 0 at the end, like any other stream.ReadByte()replaces the no-argumentRead(), andReadAsyncis supported. Compress mode (new ZInputStream(stream, level)) now works without settingFlushMode.- Truncated compressed input now throws
ZStreamExceptioninstead of silently ending the stream. ZOutputStream.Read,Seek,SetLength,LengthandPositionthrowNotSupportedExceptioninstead of returning 0.ZOutputStream.finish()/end()andZInputStream.read()/skip()are renamedFinish()/End()/Read(); the old names still work but are marked[Obsolete].SupportClassandDeflatewere never meant to be public and are now internal.- New: both streams take a
leaveOpenargument to keep the underlying stream open on dispose.
Building
dotnet test
dotnet pack zlib.net.csproj -c Release
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1 | 31 | 10/15/2026 |