- Require the
mode
parameter when creatingTarHeader
s. Previously the field had an implicit default value of0
, which made it easy to inadvertently create archives with entries that are hard to delete when extracted with other tar programs.
- Migrate to recommended lints from
package:lints
. - Add tags to pubspec.
- Migrate away from
UnmodifiableUint8ListView
which is deprecated in Dart 3.4.
- Fix the reader throwing a
FormatException
(instead of aTarException
) when reading tar files with invalid UTF bytes in their PAX headers. - Fix a range error for invalid zero-length PAX entries.
- Fix a few typos in documentation comments.
- Fix an incompatibility with Dart 3.1.
- Breaking Add class modifiers where applicable.
- Allow cancelling a
TarEntry.contents
subscription before reading more files.
- No user-visible changes.
- Fix a crash when pausing a subscription to
TarEntry.contents
right before it ends.
- Fix generating corrupt tar files when adding lots of entries at very high speeds (#20).
- Allow tar files with invalid utf8 content in PAX header values if those values aren't used for anything important.
- Improve error messages when reading a tar entry after, or during, a call to
moveNext()
.
- This package now supports being compiled to JavaScript.
- Improve performance when reading large archives
- Support sync encoding with
tarConverter
.
- Support generating tar files with GNU-style long link names
- Add
format
parameter totarWritingSink
andtarWriterWith
- Drop
chunked_stream
dependency in favor ofpackage:async
.
- Allow arbitrarily many zero bytes at the end of an archive when
disallowTrailingData
is enabled.
- Add
disallowTrailingData
parameter toTarReader
. When the option is set,readNext
will ensure that the input stream does not emit further data after the tar archive has been read fully.
- Remove outdated references in the documentation
- Remove
TarReader.contents
andTarReader.header
. Usecurrent.contents
andcurrent.header
, respectively. - Fix some minor implementation details
Most of the tar package has been rewritten, it's now based on the implementation written by Garett Tok Ern Liang in the GSoC 2020.
- Added
tar
prefix to exported symbols. - Remove
MemoryEntry
. UseTarEntry.data
to create a tar entry from bytes. - Make
WritingSink
private. UsetarWritingSink
to create a generalStreamSink<tar.Entry>
. TarReader
is now aStreamIterator
, the transformer had some design flaws.
- Support writing user and group names
- Better support for PAX-headers and large files
- Initial version