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 —
ZArchiveOpenFailureplusoutoverloads for path/stream/byte-array opens reportBadMagic,UnsupportedVersion,LengthMismatch,SectionOutOfRange,BadOffsetRecords,BadNameTable,BadFileTree,TooSmall,InvalidStream,FileNotFound,AccessDenied,ReadErrorandInvalidPathinstead of a barenull. - Reader options —
ZArchiveReaderOptionsaddsCacheBlockCount(default 64 × 64 KiB), opt-in corrected extended-name decoding (DecodeExtendedNames), andFileSharefor path opens. - Parallel block decode —
ReadFromFiledecompresses 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;TotalUncompressedSizesaturates 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:
InvalidPathfor 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.jsonsidecar next to the executable.
Full notes: WhatsNew.md · Release notes