diff --git a/src/Titanium.Web.Proxy/Compression/CompressionFactory.cs b/src/Titanium.Web.Proxy/Compression/CompressionFactory.cs
index fdae2ce3d..fcfc86aaa 100644
--- a/src/Titanium.Web.Proxy/Compression/CompressionFactory.cs
+++ b/src/Titanium.Web.Proxy/Compression/CompressionFactory.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.IO.Compression;
+using Titanium.Web.Proxy.Helpers;
using Titanium.Web.Proxy.Http;
namespace Titanium.Web.Proxy.Compression
@@ -18,6 +19,8 @@ internal static Stream Create(string type, Stream stream, bool leaveOpen = true)
return new GZipStream(stream, CompressionMode.Compress, leaveOpen);
case KnownHeaders.ContentEncodingDeflate:
return new DeflateStream(stream, CompressionMode.Compress, leaveOpen);
+ case KnownHeaders.ContentEncodingBrotli:
+ return new BrotliSharpLib.BrotliStream(stream, CompressionMode.Compress, leaveOpen);
default:
throw new Exception($"Unsupported compression mode: {type}");
}
diff --git a/src/Titanium.Web.Proxy/Compression/DecompressionFactory.cs b/src/Titanium.Web.Proxy/Compression/DecompressionFactory.cs
index f8a0fc1dd..713c678fb 100644
--- a/src/Titanium.Web.Proxy/Compression/DecompressionFactory.cs
+++ b/src/Titanium.Web.Proxy/Compression/DecompressionFactory.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.IO.Compression;
+using Titanium.Web.Proxy.Helpers;
using Titanium.Web.Proxy.Http;
namespace Titanium.Web.Proxy.Compression
@@ -18,6 +19,8 @@ internal static Stream Create(string type, Stream stream, bool leaveOpen = true)
return new GZipStream(stream, CompressionMode.Decompress, leaveOpen);
case KnownHeaders.ContentEncodingDeflate:
return new DeflateStream(stream, CompressionMode.Decompress, leaveOpen);
+ case KnownHeaders.ContentEncodingBrotli:
+ return new BrotliSharpLib.BrotliStream(stream, CompressionMode.Decompress, leaveOpen);
default:
throw new Exception($"Unsupported decompression mode: {type}");
}
diff --git a/src/Titanium.Web.Proxy/Http/KnownHeaders.cs b/src/Titanium.Web.Proxy/Http/KnownHeaders.cs
index d6e664242..9636a1fdd 100644
--- a/src/Titanium.Web.Proxy/Http/KnownHeaders.cs
+++ b/src/Titanium.Web.Proxy/Http/KnownHeaders.cs
@@ -39,6 +39,7 @@ public static class KnownHeaders
public const string ContentEncoding = "content-encoding";
public const string ContentEncodingDeflate = "deflate";
public const string ContentEncodingGzip = "gzip";
+ public const string ContentEncodingBrotli = "br";
public const string Location = "Location";
diff --git a/src/Titanium.Web.Proxy/Titanium.Web.Proxy.csproj b/src/Titanium.Web.Proxy/Titanium.Web.Proxy.csproj
index e4ac9802b..996f3deca 100644
--- a/src/Titanium.Web.Proxy/Titanium.Web.Proxy.csproj
+++ b/src/Titanium.Web.Proxy/Titanium.Web.Proxy.csproj
@@ -13,6 +13,7 @@
+
diff --git a/src/Titanium.Web.Proxy/Titanium.Web.Proxy.nuspec b/src/Titanium.Web.Proxy/Titanium.Web.Proxy.nuspec
index 0eccf8634..7a0c21d76 100644
--- a/src/Titanium.Web.Proxy/Titanium.Web.Proxy.nuspec
+++ b/src/Titanium.Web.Proxy/Titanium.Web.Proxy.nuspec
@@ -16,6 +16,7 @@
+