Files
natsdotnet/src/NATS.Server/Routes/RouteCompressionCodec.cs
2026-02-23 13:08:52 -05:00

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();
}
}