accessor

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package accessor provides random access to pxar archives.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Accessor

type Accessor struct {
	// contains filtered or unexported fields
}

Accessor provides random access to entries in a pxar archive.

func NewAccessor

func NewAccessor(reader io.ReadSeeker, payloadReader ...io.ReadSeeker) *Accessor

NewAccessor creates an accessor for random access to a pxar archive. For split archives (v2 format), provide the payload reader as the second argument.

func (*Accessor) ListDirectory

func (a *Accessor) ListDirectory(dirOffset int64) ([]pxar.Entry, error)

ListDirectory lists entries in a directory at the given offset. The offset should point to the start of the directory's FILENAME range.

func (*Accessor) ListDirectoryWithOptions added in v0.10.0

func (a *Accessor) ListDirectoryWithOptions(dirOffset int64, opts ListOption) ([]pxar.Entry, error)

ListDirectoryWithOptions lists entries with selective metadata decoding. When opts.Minimal is true, extended metadata (xattrs, fcaps, ACLs) is skipped — only stat basics are decoded.

func (*Accessor) Lookup

func (a *Accessor) Lookup(path string) (*pxar.Entry, error)

Lookup finds an entry by path in the archive.

func (*Accessor) LookupBatch added in v0.10.0

func (a *Accessor) LookupBatch(paths []string) ([]*pxar.Entry, error)

LookupBatch looks up multiple paths in a single pass. It is more efficient than N separate Lookup calls because it shares directory traversals for common prefixes.

func (*Accessor) ReadEntryAt

func (a *Accessor) ReadEntryAt(offset int64) (*pxar.Entry, error)

ReadEntryAt reads a pxar entry at the given archive offset.

func (*Accessor) ReadEntryAtMinimal added in v0.10.0

func (a *Accessor) ReadEntryAtMinimal(offset int64) (*pxar.Entry, error)

ReadEntryAtMinimal reads a pxar entry with minimal decoding. It skips extended metadata (xattrs, fcaps, ACLs, quota project ID) and only populates stat basics. Use for indexing/browsing where full metadata is unnecessary.

func (*Accessor) ReadFileContent

func (a *Accessor) ReadFileContent(entry *pxar.Entry) ([]byte, error)

ReadFileContent reads the content of a file entry from the archive.

func (*Accessor) ReadFileContentReader added in v0.10.0

func (a *Accessor) ReadFileContentReader(entry *pxar.Entry) (io.ReadCloser, error)

ReadFileContentReader returns a streaming reader for file content. The caller must close the returned reader when done. This avoids materializing the entire file in memory.

func (*Accessor) ReadRoot

func (a *Accessor) ReadRoot() (*pxar.Entry, error)

ReadRoot reads the root entry of the archive.

type ListOption added in v0.10.0

type ListOption struct {
	// Minimal skips decoding xattrs, fcaps, ACLs, and other extended
	// metadata. Only stat basics (mode, uid, gid, times) are populated.
	// Significantly reduces per-entry decode cost.
	Minimal bool
}

ListOption controls which metadata is decoded during ListDirectory.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL