From 553c533ada90f10a40009c8582d04eb4b383e16e Mon Sep 17 00:00:00 2001 From: Mitch Capper Date: Tue, 23 Sep 2025 03:26:33 -0700 Subject: [PATCH] ZStandard tar support --- FORMATS.md | 2 + README.md | 7 +- .../Compressors/ZStandard/ZStandardStream.cs | 65 ++++++++++++++++++ .../ZStandard/ZstandardConstants.cs | 15 ++++ src/SharpCompress/Factories/TarFactory.cs | 18 ++++- .../Factories/ZStandardFactory.cs | 28 ++++++++ src/SharpCompress/Readers/ReaderFactory.cs | 2 +- src/SharpCompress/Readers/Tar/TarReader.cs | 14 ++++ .../SharpCompress.Test/Tar/TarReaderTests.cs | 3 + tests/TestArchives/Archives/Tar.tar.zst | Bin 0 -> 64512 bytes 10 files changed, 150 insertions(+), 4 deletions(-) create mode 100644 src/SharpCompress/Compressors/ZStandard/ZStandardStream.cs create mode 100644 src/SharpCompress/Compressors/ZStandard/ZstandardConstants.cs create mode 100644 src/SharpCompress/Factories/ZStandardFactory.cs create mode 100644 tests/TestArchives/Archives/Tar.tar.zst diff --git a/FORMATS.md b/FORMATS.md index eb27ad2f..473d8eb9 100644 --- a/FORMATS.md +++ b/FORMATS.md @@ -15,6 +15,7 @@ | Tar | None | Both | TarArchive | TarReader | TarWriter (3) | | Tar.GZip | DEFLATE | Both | TarArchive | TarReader | TarWriter (3) | | Tar.BZip2 | BZip2 | Both | TarArchive | TarReader | TarWriter (3) | +| Tar.Zstandard | ZStandard | Decompress | TarArchive | TarReader | N/A | | Tar.LZip | LZMA | Both | TarArchive | TarReader | TarWriter (3) | | Tar.XZ | LZMA2 | Decompress | TarArchive | TarReader | TarWriter (3) | | GZip (single file) | DEFLATE | Both | GZipArchive | GZipReader | GZipWriter | @@ -41,6 +42,7 @@ For those who want to directly compress/decompress bits. The single file formats | ADCStream | Decompress | | LZipStream | Both | | XZStream | Decompress | +| ZStandardStream | Decompress | ## Archive Formats vs Compression diff --git a/README.md b/README.md index 2ab41c09..f27dbe60 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # SharpCompress -SharpCompress is a compression library in pure C# for .NET Framework 4.62, .NET Standard 2.1, .NET 6.0 and NET 8.0 that can unrar, un7zip, unzip, untar unbzip2, ungzip, unlzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip/lzip are implemented. +SharpCompress is a compression library in pure C# for .NET Framework 4.62, .NET Standard 2.1, .NET 6.0 and NET 8.0 that can unrar, un7zip, unzip, untar unbzip2, ungzip, unlzip, unzstd with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip/lzip are implemented. The major feature is support for non-seekable streams so large files can be processed on the fly (i.e. download stream). @@ -20,10 +20,12 @@ In general, I recommend GZip (Deflate)/BZip2 (BZip)/LZip (LZMA) as the simplicit Zip is okay, but it's a very hap-hazard format and the variation in headers and implementations makes it hard to get correct. Uses Deflate by default but supports a lot of compression methods. -RAR is not recommended as it's a propriatory format and the compression is closed source. Use Tar/LZip for LZMA +RAR is not recommended as it's a proprietary format and the compression is closed source. Use Tar/LZip for LZMA 7Zip and XZ both are overly complicated. 7Zip does not support streamable formats. XZ has known holes explained here: (http://www.nongnu.org/lzip/xz_inadequate.html) Use Tar/LZip for LZMA compression instead. +ZStandard is an efficient format that works well for streaming with a flexible compression level to tweak the speed/performance trade off you are looking for. We currently only implement decompression for ZStandard but as we leverage the [ZstdSharp](https://github.com/oleg-st/ZstdSharp) library one could likely add compression support without much trouble (PRs are welcome!). + ## A Simple Request Hi everyone. I hope you're using SharpCompress and finding it useful. Please give me feedback on what you'd like to see changed especially as far as usability goes. New feature suggestions are always welcome as well. I would also like to know what projects SharpCompress is being used in. I like seeing how it is used to give me ideas for future versions. Thanks! @@ -40,6 +42,7 @@ I'm always looking for help or ideas. Please submit code or email with ideas. Un * 7Zip writing * Zip64 (Need writing and extend Reading) * Multi-volume Zip support. +* ZStandard writing ## Version Log diff --git a/src/SharpCompress/Compressors/ZStandard/ZStandardStream.cs b/src/SharpCompress/Compressors/ZStandard/ZStandardStream.cs new file mode 100644 index 00000000..61f7fbb4 --- /dev/null +++ b/src/SharpCompress/Compressors/ZStandard/ZStandardStream.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SharpCompress.IO; + +namespace SharpCompress.Compressors.ZStandard; + +internal class ZStandardStream : ZstdSharp.DecompressionStream, IStreamStack +{ +#if DEBUG_STREAMS + long IStreamStack.InstanceId { get; set; } +#endif + + public int DefaultBufferSize { get; set; } + int IStreamStack.BufferSize + { + get => 0; + set { } + } + int IStreamStack.BufferPosition + { + get => 0; + set { } + } + + private readonly Stream stream; + + Stream IStreamStack.BaseStream() => stream; + + void IStreamStack.SetPosition(long position) { } + + internal static bool IsZStandard(Stream stream) + { + var br = new BinaryReader(stream); + var magic = br.ReadUInt32(); + if (ZstandardConstants.MAGIC != magic) + { + return false; + } + return true; + } + + public ZStandardStream(Stream baseInputStream) + : base(baseInputStream) + { + this.stream = baseInputStream; +#if DEBUG_STREAMS + this.DebugConstruct(typeof(ZStandardStream)); +#endif + } + + /// + /// The current position within the stream. + /// Throws a NotSupportedException when attempting to set the position + /// + /// Attempting to set the position + public override long Position + { + get { return stream.Position; } + set { throw new NotSupportedException("InflaterInputStream Position not supported"); } + } +} diff --git a/src/SharpCompress/Compressors/ZStandard/ZstandardConstants.cs b/src/SharpCompress/Compressors/ZStandard/ZstandardConstants.cs new file mode 100644 index 00000000..8025c658 --- /dev/null +++ b/src/SharpCompress/Compressors/ZStandard/ZstandardConstants.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SharpCompress.Compressors.ZStandard; + +internal class ZstandardConstants +{ + /// + /// Magic number found at start of ZStandard frame: 0xFD 0x2F 0xB5 0x28 + /// + public const uint MAGIC = 0xFD2FB528; +} diff --git a/src/SharpCompress/Factories/TarFactory.cs b/src/SharpCompress/Factories/TarFactory.cs index 50840302..b5fc1489 100644 --- a/src/SharpCompress/Factories/TarFactory.cs +++ b/src/SharpCompress/Factories/TarFactory.cs @@ -8,6 +8,7 @@ using SharpCompress.Compressors.BZip2; using SharpCompress.Compressors.LZMA; using SharpCompress.Compressors.Lzw; using SharpCompress.Compressors.Xz; +using SharpCompress.Compressors.ZStandard; using SharpCompress.IO; using SharpCompress.Readers; using SharpCompress.Readers.Tar; @@ -63,7 +64,7 @@ public class TarFactory yield return "taZ"; // zstd - // yield return "tzst"; // unsupported + yield return "tzst"; } /// @@ -135,6 +136,21 @@ public class TarFactory } } + ((IStreamStack)rewindableStream).StackSeek(pos); + if (ZStandardStream.IsZStandard(rewindableStream)) + { + ((IStreamStack)rewindableStream).StackSeek(pos); + var testStream = new ZStandardStream( + SharpCompressStream.Create(rewindableStream, leaveOpen: true) + ); + if (TarArchive.IsTarFile(testStream)) + { + ((IStreamStack)rewindableStream).StackSeek(pos); + reader = new TarReader(rewindableStream, options, CompressionType.ZStandard); + return true; + } + } + ((IStreamStack)rewindableStream).StackSeek(pos); if (LZipStream.IsLZipFile(rewindableStream)) { diff --git a/src/SharpCompress/Factories/ZStandardFactory.cs b/src/SharpCompress/Factories/ZStandardFactory.cs new file mode 100644 index 00000000..a5c6d84f --- /dev/null +++ b/src/SharpCompress/Factories/ZStandardFactory.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SharpCompress.Archives; +using SharpCompress.Compressors.ZStandard; +using SharpCompress.Readers; + +namespace SharpCompress.Factories; + +internal class ZStandardFactory : Factory +{ + public override string Name => "ZStandard"; + + public override IEnumerable GetSupportedExtensions() + { + yield return "zst"; + yield return "zstd"; + } + + public override bool IsArchive( + Stream stream, + string? password = null, + int bufferSize = 65536 + ) => ZStandardStream.IsZStandard(stream); +} diff --git a/src/SharpCompress/Readers/ReaderFactory.cs b/src/SharpCompress/Readers/ReaderFactory.cs index b6b76b4d..b7b40401 100644 --- a/src/SharpCompress/Readers/ReaderFactory.cs +++ b/src/SharpCompress/Readers/ReaderFactory.cs @@ -32,7 +32,7 @@ public static class ReaderFactory } throw new InvalidFormatException( - "Cannot determine compressed stream type. Supported Reader Formats: Arc, Zip, GZip, BZip2, Tar, Rar, LZip, XZ" + "Cannot determine compressed stream type. Supported Reader Formats: Arc, Zip, GZip, BZip2, Tar, Rar, LZip, XZ, ZStandard" ); } } diff --git a/src/SharpCompress/Readers/Tar/TarReader.cs b/src/SharpCompress/Readers/Tar/TarReader.cs index cfa9c008..aaa0005c 100644 --- a/src/SharpCompress/Readers/Tar/TarReader.cs +++ b/src/SharpCompress/Readers/Tar/TarReader.cs @@ -11,6 +11,7 @@ using SharpCompress.Compressors.Deflate; using SharpCompress.Compressors.LZMA; using SharpCompress.Compressors.Lzw; using SharpCompress.Compressors.Xz; +using SharpCompress.Compressors.ZStandard; using SharpCompress.IO; namespace SharpCompress.Readers.Tar; @@ -35,6 +36,7 @@ public class TarReader : AbstractReader { CompressionType.BZip2 => new BZip2Stream(stream, CompressionMode.Decompress, false), CompressionType.GZip => new GZipStream(stream, CompressionMode.Decompress), + CompressionType.ZStandard => new ZStandardStream(stream), CompressionType.LZip => new LZipStream(stream, CompressionMode.Decompress), CompressionType.Xz => new XZStream(stream), CompressionType.Lzw => new LzwStream(stream), @@ -84,6 +86,18 @@ public class TarReader : AbstractReader throw new InvalidFormatException("Not a tar file."); } + ((IStreamStack)rewindableStream).StackSeek(pos); + if (ZStandardStream.IsZStandard(rewindableStream)) + { + ((IStreamStack)rewindableStream).StackSeek(pos); + var testStream = new ZStandardStream(rewindableStream); + if (TarArchive.IsTarFile(testStream)) + { + ((IStreamStack)rewindableStream).StackSeek(pos); + return new TarReader(rewindableStream, options, CompressionType.ZStandard); + } + throw new InvalidFormatException("Not a tar file."); + } ((IStreamStack)rewindableStream).StackSeek(pos); if (LZipStream.IsLZipFile(rewindableStream)) { diff --git a/tests/SharpCompress.Test/Tar/TarReaderTests.cs b/tests/SharpCompress.Test/Tar/TarReaderTests.cs index d2b01ef0..a676d2da 100644 --- a/tests/SharpCompress.Test/Tar/TarReaderTests.cs +++ b/tests/SharpCompress.Test/Tar/TarReaderTests.cs @@ -49,6 +49,9 @@ public class TarReaderTests : ReaderTests [Fact] public void Tar_GZip_Reader() => Read("Tar.tar.gz", CompressionType.GZip); + [Fact] + public void Tar_ZStandard_Reader() => Read("Tar.tar.zst", CompressionType.ZStandard); + [Fact] public void Tar_LZip_Reader() => Read("Tar.tar.lz", CompressionType.LZip); diff --git a/tests/TestArchives/Archives/Tar.tar.zst b/tests/TestArchives/Archives/Tar.tar.zst new file mode 100644 index 0000000000000000000000000000000000000000..1443b6699953e5d52c85e93d23f8e401c140767f GIT binary patch literal 64512 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≶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