ZNetCS.AspNetCore.Compression
6.0.0
dotnet add package ZNetCS.AspNetCore.Compression --version 6.0.0
NuGet\Install-Package ZNetCS.AspNetCore.Compression -Version 6.0.0
<PackageReference Include="ZNetCS.AspNetCore.Compression" Version="6.0.0" />
paket add ZNetCS.AspNetCore.Compression --version 6.0.0
#r "nuget: ZNetCS.AspNetCore.Compression, 6.0.0"
// Install ZNetCS.AspNetCore.Compression as a Cake Addin #addin nuget:?package=ZNetCS.AspNetCore.Compression&version=6.0.0 // Install ZNetCS.AspNetCore.Compression as a Cake Tool #tool nuget:?package=ZNetCS.AspNetCore.Compression&version=6.0.0
ZNetCS.AspNetCore.Compression
A small package to allow decompress incoming request and compress outgoing response inside ASP.NET Core application. This package by default supports Brotli, GZIP and Deflate compression and decompression.
This package compresses all content in memory before sending it to client to provide new Content-Length
.
Installing
Install using the ZNetCS.AspNetCore.Compression NuGet package
PM> Install-Package ZNetCS.AspNetCore.Compression
Usage
When you install the package, it should be added to your .csproj
. Alternatively, you can add it directly by adding:
<ItemGroup>
<PackageReference Include="ZNetCS.AspNetCore.Compression" Version="6.0.0" />
</ItemGroup>
.NET 6
In order to use the Compression middleware, you must configure the services in the Program.cs
file.
// Add services to the container.
builder.Services.AddCompression();
or
// Add services to the container.
builder.Services.AddCompression(
options =>
{
options.AllowedMediaTypes = new List<MediaTypeHeaderValue>
{
MediaTypeHeaderValue.Parse("text/*"),
MediaTypeHeaderValue.Parse("message/*"),
MediaTypeHeaderValue.Parse("application/x-javascript"),
MediaTypeHeaderValue.Parse("application/javascript"),
MediaTypeHeaderValue.Parse("application/json"),
MediaTypeHeaderValue.Parse("application/xml"),
MediaTypeHeaderValue.Parse("application/atom+xml"),
MediaTypeHeaderValue.Parse("application/xaml+xml")
};
options.IgnoredPaths = new List<string>
{
"/css/",
"/images/",
"/js/",
"/lib/"
};
options.MinimumCompressionThreshold = 860;
options.Compressors = new List<ICompressor> { new BrotliCompressor(), new GZipCompressor(), new DeflateCompressor() };
options.Decompressors = new List<IDecompressor> { new BrotliDecompressor(), new GZipDecompressor(), new DeflateDecompressor() };
});
then
// Configure IP filtering
app.UseCompression();
.NET 5 and Below
In order to use the Compression middleware, you must configure the services in the ConfigureServices
and Configure
call of Startup
:
public void ConfigureServices(IServiceCollection services)
{
services.AddCompression();
}
public void Configure(IApplicationBuilder app)
{
app.UseCompression();
// other middleware e.g. MVC etc
}
You can alternatively setup additional options for compression and decompression
public void Configure(IApplicationBuilder app)
{
app.UseCompression();
// other middleware e.g. MVC etc
}
public void ConfigureServices(IServiceCollection services)
{
services.AddCompression(
options =>
{
options.AllowedMediaTypes = new List<MediaTypeHeaderValue>
{
MediaTypeHeaderValue.Parse("text/*"),
MediaTypeHeaderValue.Parse("message/*"),
MediaTypeHeaderValue.Parse("application/x-javascript"),
MediaTypeHeaderValue.Parse("application/javascript"),
MediaTypeHeaderValue.Parse("application/json"),
MediaTypeHeaderValue.Parse("application/xml"),
MediaTypeHeaderValue.Parse("application/atom+xml"),
MediaTypeHeaderValue.Parse("application/xaml+xml")
};
options.IgnoredPaths = new List<string>
{
"/css/",
"/images/",
"/js/",
"/lib/"
};
options.MinimumCompressionThreshold = 860;
options.Compressors = new List<ICompressor> { new BrotliCompressor(), new GZipCompressor(), new DeflateCompressor() };
options.Decompressors = new List<IDecompressor> { new BrotliDecompressor(), new GZipDecompressor(), new DeflateDecompressor() };
});
}
The default options when empty constructor is used are listed above.
Compressors also allow to specify compression level.
public void Configure(IApplicationBuilder app)
{
app.UseCompression();
// other middleware e.g. MVC etc
}
public void ConfigureServices(IServiceCollection services)
{
services.AddCompression(
options =>
{
options.Compressors = new List<ICompressor> { new BrotliDecompressor(CompressionLevel.Fastest), new GZipCompressor(CompressionLevel.Fastest), new DeflateCompressor(CompressionLevel.Fastest) };
});
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. 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. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.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.
Breaking Change: Drop support for netstandard and .net framework. Code refactoring. Dependency update. Nullable enable. Logging performance improvements.