using XZ.NET; namespace WarcViewerBlazorWinForm.Backend.IO.Archiving { internal static class XzRwOps { public static Stream ReadXzStream(Stream inputStream) => new XZInputStream(inputStream); public static Stream WriteXzStream(Stream outputStream, int thread = 1, uint level = 9) => new XZOutputStream(outputStream, thread, level); public static Stream OpenReadXzFile(string filePath) => ReadXzStream(File.OpenRead(filePath)); public static Stream OpenWriteXzFile(string filePath) => WriteXzStream(File.OpenWrite(filePath)); public static byte[] ReadXzFile(string filePath) { using var fs = File.OpenRead(filePath); using var msDecompressed = new MemoryStream(); using var xzR = ReadXzStream(fs); xzR.CopyTo(msDecompressed); return msDecompressed.ToArray(); } public static void WriteXzFile(byte[] toCompressBytes, string filePath, uint level = 9) { var compressedBytes = XZOutputStream.Encode(toCompressBytes, level); File.WriteAllBytes(filePath, compressedBytes); } } }