A simple library and CLI utility to pack filesystems into single blobs. It is a rework of the original tooling written by Jörg Rödel.
Without any feature flags, the crate can only decode archive blobs - this might be sufficient for embedded systems or early boot software which might not have an allocator or a standard library.
On top of that, several incremental feature flags can be enabled:
alloc
: builds the library withalloc
support, which enables the use of thePackItArchive
struct for easier archive manipulation.std
: links the library to the Rust std library, which enables the use of thePackItArchiveEncoder
struct and allows encoding an archive into any type that implementsWrite
.cli
: builds a CLI utility for archive packing, unpacking and listing. Install this tool withcargo install --path $(repo) -F cli
.
Full details of the library API are provided via cargo doc
.
The command line tool is very simple to use. It has 3 subcommands: pack
packs a directory into a PackIt archive; unpack
extracts a PackIt archive into a local directory; list
simply lists the files in an archive. Full command help can be displayed via packit -h
and packit <subcommand> -h
.