Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
archive: Replace entry parsing with tar-core Parser
Replace the hand-rolled entry parsing loop and sparse header
handling with tar-core's Parser state machine. The Parser
processes GNU long name/link extensions, PAX headers (including
global extensions), and GNU/PAX sparse formats internally,
emitting fully resolved entries.

This brings PAX sparse v1.0 support (fixing issues #286 and #295)
with no public API changes. Entries::raw(true) is preserved using
the original single-header reading code path for callers that need
to see every tar record (including extension headers) individually.

Assisted-by: OpenCode (Claude Opus 4)
Signed-off-by: Colin Walters <walters@verbum.org>
  • Loading branch information
cgwalters committed May 18, 2026
commit 7901b6874e9f58b0d1b131e510c38d67de11b2e8
4 changes: 3 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ license = "MIT OR Apache-2.0"
keywords = ["tar", "tarfile", "encoding"]
readme = "README.md"
edition = "2021"
rust-version = "1.63"
# Primarily from zerocopy
rust-version = "1.86.0"
exclude = ["tests/archives/*"]

description = """
Expand All @@ -21,6 +22,7 @@ contents are never required to be entirely resident in memory all at once.

[dependencies]
filetime = "0.2.8"
tar-core = "0.1.0"

[dev-dependencies]
astral-tokio-tar = "0.6.2"
Expand Down
Loading