27 lines
747 B
C#
27 lines
747 B
C#
using System.IO.Compression;
|
|
|
|
namespace NATS.Server.Routes;
|
|
|
|
public static class RouteCompressionCodec
|
|
{
|
|
public static byte[] Compress(ReadOnlySpan<byte> payload)
|
|
{
|
|
using var output = new MemoryStream();
|
|
using (var stream = new DeflateStream(output, CompressionLevel.Fastest, leaveOpen: true))
|
|
{
|
|
stream.Write(payload);
|
|
}
|
|
|
|
return output.ToArray();
|
|
}
|
|
|
|
public static byte[] Decompress(ReadOnlySpan<byte> payload)
|
|
{
|
|
using var input = new MemoryStream(payload.ToArray());
|
|
using var stream = new DeflateStream(input, CompressionMode.Decompress);
|
|
using var output = new MemoryStream();
|
|
stream.CopyTo(output);
|
|
return output.ToArray();
|
|
}
|
|
}
|