Alpha 9 introduces some new features, and also important fixes and optimizations, especially related to FileSystems and tar archives.
⚠️ This release has some breaking changes to the API, but fairly minor all things considered. Be advised that the next release may have a new package name: archives
. See #427.
- Using
fs.WalkDir()
is now much faster when walking large tar archives. - A
FileSystem
can be created from a stream instead of just a file name (but the stream must be a Reader, ReaderAt, and Seeker). - Added lzip compression.
- Renamed
CompressedArchive
toArchive
since compression is optional. - Split
Archival
intoArchival
andExtraction
, since not all archive formats can archive (some, like rar and 7z, can only extract). - Removed the filename filter argument from
Extract()
since it was mostly pointless and even confusing. - Brotli-compressed files can now be identified by their stream, maybe... sometimes (it's worth a shot; brotli has no notable magic number or header so we just try our best).
- Removed
ErrStopWalk
in favor offs.SkipAll
which is apparently the same thing - Renamed
ErrNoMatch
toNoMatch
since it is a sentinel (error) value and not an actual error.
What's Changed
- Bugfix: Tar files created in their target directory shouldn't recurse infinitely by @drewstinnett in #384
- zlib format incorrectly matches on ASCII files starting with the letter x by @dpgarrick in #386
- Option to use number for user and/or group names by @breezerider in #385
- Fix create archive to a continuous writing source file failed by @halfcrazy in #388
- 7z: Fix iteration bug by @SheltonZhu in #394
- Add lzip support by @sorairolake in #401
- Expose gzip.Reader.Multistream by @rgmz in #407
- zip: Fix compression method not set without SelectiveCompression enabled (closes #418) by @hevav in #419
- chore(go.mod): Switch to upstream lzip package by @sorairolake in #422
- Upgrade rardecode to v2.0.0-beta.3 by @rgmz in #423
- Refactor FS types; improve performance by @mholt in #426
New Contributors
- @drewstinnett made their first contribution in #384
- @dpgarrick made their first contribution in #386
- @breezerider made their first contribution in #385
- @SheltonZhu made their first contribution in #394
- @sorairolake made their first contribution in #401
- @rgmz made their first contribution in #407
- @hevav made their first contribution in #419
Full Changelog: v4.0.0-alpha.8...v4.0.0-alpha.9