Skip to content

v1.3.0

Latest

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 13 Sep 05:07
· 4 commits to master since this release

ZArchiveSharp v1.3.0

Framework-dependent standalone CLI bundles for Windows, Linux and macOS (x64 + arm64), a mount-friendly random-access reader API, specific open-failure reasons, and parallel block decode.

Highlights

  • Mount-friendly reader API — node-handle directory walks (RootNode, TryGetDirEntry), canonical names (TryGetNodeName), seekable per-entry streams (OpenRead/TryOpenRead), and archive stats (EntryCount, TotalUncompressedSize) for virtual file systems and other random-access hosts.
  • Specific open-failure reasons — ZArchiveOpenFailure plus out overloads for path/stream/byte-array opens report BadMagic, UnsupportedVersion, LengthMismatch, SectionOutOfRange, BadOffsetRecords, BadNameTable, BadFileTree, TooSmall, InvalidStream, FileNotFound, AccessDenied, ReadError and InvalidPath instead of a bare null.
  • Reader options — ZArchiveReaderOptions adds CacheBlockCount (default 64 × 64 KiB), opt-in corrected extended-name decoding (DecodeExtendedNames), and FileShare for path opens.
  • Parallel block decode — ReadFromFile decompresses distinct 64 KiB blocks outside the global lock (cache bookkeeping and copies stay locked), so concurrent reads scale.
  • Hardening fixes — extraction rejects crafted directory child ranges loudly; null/empty/invalid paths report InvalidPath; TotalUncompressedSize saturates instead of wrapping.

Downloads

Bundle Executable Runtime
release_1.3.0_win-x64.zip ZArchiveSharp.exe .NET 10 (x64)
release_1.3.0_win-arm64.zip ZArchiveSharp.exe .NET 10 (arm64)
release_1.3.0_linux-x64.zip ZArchiveSharp .NET 10 (x64)
release_1.3.0_linux-arm64.zip ZArchiveSharp .NET 10 (arm64)
release_1.3.0_osx-x64.zip ZArchiveSharp .NET 10 (x64)
release_1.3.0_osx-arm64.zip ZArchiveSharp .NET 10 (arm64)

Each zip contains the single-file executable plus its required ZArchiveSharp.Cli.runtimeconfig.json sidecar (the .NET runtime is not embedded), README.md, LICENSE and THIRD-PARTY-NOTICES.md. Unix executables are marked executable in the zip, so they run straight after unzipping.

Or install the global tool: dotnet tool install -g ZArchiveSharp.Cli.

License

Since v1.2.1, ZArchiveSharp is distributed under the ZArchiveSharp Non-Commercial License: the batch pipeline layer is a port of ZarManager 1.2.0, whose license permits non-commercial use only. Commercial use, selling, and use in commercial products are prohibited without prior written consent. The v1.2.0 packages were published under MIT. See LICENSE and THIRD-PARTY-NOTICES.md.

Upgrade notes

  • Additive API: no wire-format or CLI behavior changes, and no breaking changes to existing reader overloads.
  • Behavior changes apply only to invalid or crafted input: InvalidPath for bad paths, clamped enumeration counts, loud extraction failure on crafted child ranges, and a saturating archive size.
  • Standalone bundles are framework-dependent: install the matching .NET 10 runtime and keep the ZArchiveSharp.Cli.runtimeconfig.json sidecar next to the executable.

Full notes: WhatsNew.md · Release notes