TeilOne.FastZip 1.0.4

dotnet add package TeilOne.FastZip --version 1.0.4
                    
NuGet\Install-Package TeilOne.FastZip -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TeilOne.FastZip" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TeilOne.FastZip" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="TeilOne.FastZip" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TeilOne.FastZip --version 1.0.4
                    
#r "nuget: TeilOne.FastZip, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TeilOne.FastZip@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TeilOne.FastZip&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=TeilOne.FastZip&version=1.0.4
                    
Install as a Cake Tool

FastZip

FastZip is a .NET library for fast reading and streaming ZIP files. It does not use the ZIP central directory and, thus, does not follow the specification. This makes it incompatible with multi-part ZIP archives, as well as with archives that have been updated.

Features

  • ZIP entries can be read from a non-seekable stream on the fly. There is no need to read the stream to the end first
  • Low memory usage

Limitations

  • Multi-part ZIP archives are not supported
  • Updated ZIP archives are not supported

Usage

var zipFileUrl = "https://teil-one.s3.eu-central-1.amazonaws.com/zip-mixed.zip";
using var httpClient = new HttpClient();
await using var zipStream = await httpClient.GetStreamAsync(zipFileUrl);

await using var zipStreamReader = new TeilOne.FastZip.ZipStreamReader(zipStream);

long compressedLength = 0;
long uncompressedLength = 0;
int totalEntries = 0;

await foreach (var entry in zipStreamReader.GetEntriesAsync())
{
    await using (entry)
    {
        compressedLength += entry.CompressedLength;
        uncompressedLength += entry.Length;
        totalEntries++;

        Console.Write($"\rRead {totalEntries} entries. Last entry compression method: {entry.CompressionMethod}    ");
    }
}

Console.WriteLine();
Console.WriteLine();
Console.WriteLine($"Compressed size: {compressedLength}, uncompressed size: {uncompressedLength}");

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.4 675 10/2/2023
1.0.3 507 10/16/2022