NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #7 most downloaded on pub.dev
Provides encoders and decoders for various archive and compression formats such as zip, tar, bzip2, gzip, and zlib.
Last release 24 days ago
13 Sep 2026
Release timing varies
gaps range from 9 days to 10 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
100 releases · first in 2013
Deprecated the fileSize parameter of the FileBuffer read methods, which is ignored.
XZMultithreadOptions
to decodeBytes or decodeStream spreads the work over isolates, one xz
block per job, and reports the result through its onDone callback. Both
methods behave exactly as before when it is omitted. On a 1.1 GB archive of
six blocks: 16.1 s single threaded, 8.0 s on the default three workers,
5.0 s on six.decodeStream reading from an InputFileStream now lets each worker read
its own block straight from disk, so the compressed archive never passes
through the calling isolate. Decoding a 1.1 GB archive to an
OutputFileStream peaks at 1.8 GB, below the 3.0 GB the single threaded
path uses, while being twice as fast.InputFileStream.fileBuffer, fileOffset and fileLength.--x86 flag support to XZDecoderverify: true)uncompressedSize getter for XZDecoder, returning the original file
size before compression.throwOnError to XZDecoder.decodeBytes and decodeStream. Without
it a malformed or
truncated archive still returns the partial output with nothing to say it is
not the whole file, which was the only decode with no way at all to report a
failure. In multithreaded mode the exception is delivered to
XZMultithreadOptions.onError, and setting throwOnError without an
onError is now refused rather than losing the failure.verify: true was used with an output that cannot be read back, such as an
OutputFileStream or any multithreaded decode. The output now stops in the
same place whichever way the decode was asked for.XZDecoder.maxPreallocateSize, capping how large an output buffer is
allocated from a size the archive itself declares. Defaults to
xzDefaultMaxPreallocateSize, 2 GB natively and 256 MB on the web.XZMultithreadOptions.fileReadBufferSize.xz --check=none archive with corrupt blocks passed verify: true.TarDecoder with verify: true now checks each header's own checksum and
throws ArchiveException on a mismatch.size record was applied to the metadata headers following it
rather than to the entry it describes.././@LongLink header of type K set the next entry's name
instead of its symlink target.storeData: false skipped the tar long name and PAX headers along with
the file data, losing the names they carry.verify: true the end of a tar is a full 512 byte zero block, which
two zero bytes could not be told apart from a damaged header. A tail shorter
than a header block now ends the archive instead of decoding as junk.TarFile.maxNumericField are refused on
read and write instead of overflowing silently.L and K
type flags, so other tar implementations truncated them to 100 bytes, and
long symlink targets were not written at all.filenameEncoding.TarEncoder copies a stored stream through in chunks rather than reading the
whole entry into memory.TarFile.content is now settable and reads back what was set.GZipDecoder.decodeStream returned true for a truncated or corrupt
archive, silently losing files.verify: true.FileBuffer reads refilled the cache one byte early, costing
a re-read on every buffer-aligned access.InputFileStream.subset did not clamp its length to what remains of the
source, so peeking past the end returned stale bytes.fileSize parameter of the FileBuffer read methods, which
is ignored.One column per quarter.
Optimize performance and issues with large files with XZDecoder.
Fix: RangeError when parsing ZIP extra fields with trailing bytes.
Fix extractFileToDisk file extension handling, where foo.bar.zip would fail. *
Remove dependency to crypto package
Change posix dependency to 6.0.2.
Fix zip decoding when the last file of the archive is also a zip.
Improve performance of OutputFileStream.
Fix level argument for ZipEncoder.add method.
Fix potential infinite loop when parsing zip headers.
Fix import error with js_interop.
Fix error with GZip encoder for web builds.
Major cleanup of the code, includes potential breaking changes.
Fix ArchiveFile.rawContent returning null after decoding a zip.
Fix zip encoding when a file was previously decoded.
Re-add zipPath to ZipFileEncoder.
Remove dependency to pointycastle package
* Fix ZipCrypto decryption
Revert breaking change for extractArchiveToDisk becoming async; add extractArchiveToDiskAsync for the async version.
Improve zip decompression performance with dart:io by using native ZLib decompression when possible.
Improve performance by not using List.setRange for copying bytes, which turns out to be very slow.
Fix for Zip64 file size causing memory errors.
Rewrote InputFileStream to reduce overall memory by using a shared file cache.
DateTime lastModDateTime getter to ArchiveFile.Fix for new default buffer size for InputFileStream consuming too much memory for large archives.
Fix bug in InputFileStream that caused it to only have an 8-byte buffer, making file streaming slow.
Add bzip2 decompression for zip files.
Fix for decoding zip64 zip files that have multiple extra fields.
Add Zip64 support to ZipEncoder to allow it to create zip files > 4GB.
Fix for extractFileToDisk causing corrupt files by closing a file stream before it finished writing.
Fix for zip security issue with symlinks, https://github.com/brendan-duncan/archive/issues/265. https://osv.dev/vulnerability/GHSA-9v85-q87q-g4vg.
Fix symlink encoding for tar files
* Fix errors decoding XZ files.
Fix file content when decoding zips
* Fix analysis errors.
Support symlinks in ZIP archives
Fix for UTF-8 file name caused problem on Windows.
Fix for Inflate crashing on some compressed files.
IO encoders (ZipFileEncoder, TarFileEncoder), will now include directories and empty directories.
Re-add List content data for ArchiveFile.
Added buffer to OutputFileStream to improve performance by reducing the number of file writes.
For non-web applications, use native 'inflate' decompression when decompressing zip files.
Fix indexing bug in Archive.addFile.
Fix performance regression with Archive.
Fix FileInputStream to work with ZipDecoder.
Catch invalid UTF8 string decoding.
* Fix for UTF8 filenames
Fix problem with non-terminating long filenames.
Disable XZ format CRC64 for html builds to fix errors.
* Changed LICENSE to MIT.
Cleaned up LICENSE, moving other licenses to LICENSE-other.md.
Added the ability to override the timestamp encoded in a Zip file.
Fix zip encoder so that zip files created on Windows will open correctly on Linux.
Stable release supporting null safety.
* Migrate to null safety.
Switch to dart strong mode; refactor code to resolve all dartanalyzer warnings.
* Fix dartanalyzer warnings
Set the default permission for ArchiveFile to something more reasonable (0644 -rw-r--r--)
Fix for decoding empty zip files.
Add isSymbolicLink and nameOfLinkedFile to ArchiveFile.
* Fix zip isFile
Your coding agent can read these notes before it upgrades. Set up the MCP server →