Revision history for File-Raw-Archive
0.01 2026-05-05
- First public release. Archive container reader/writer with a
plugin API; built-in tar plugin reads ustar (POSIX 1988),
GNU @LongLink, and PAX extended-header tarballs (every
real-world tar dialect in active use). Writes ustar / GNU /
PAX / auto via the `format` option.
- Sub-second mtime round-trip via PAX `mtime=<sec>.<ns>`.
- PAX `SCHILY.xattr.*` xattr round-trip; xattrs applied during
extract on Linux/macOS/FreeBSD via the platform's setxattr.
- PAX `'g'` global header emission via `global_meta` write
option; readers inherit global keys until overridden.
- gzip composition: `compression => 'gzip' | 'auto'` streams
through libz on the way in/out, keeping RSS bounded.
- Filtered iteration via `entry_filter` predicate.
- Parallel extract worker pool: `extract_all($p, $dest,
parallel => N)` spawns N forked writer workers, each with
its own pipe carrying length-prefixed Storable jobs.
Round-robin dispatch with natural backpressure. Errors
aggregated and croaked as a single message at finish.
Windows falls back to sequential with a one-time warning.
- Path-traversal-safe `extract_all` (refuses `..` segments
and absolute paths unless `unsafe_paths => 1`).
- Publishes archive_plugin.h via ExtUtils::Depends so sister
dists (File::Raw::Archive::Zip, ::Cpio, ::Ar) can register
additional formats.