# fpk (Forlorn Pak) [![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0) Packs a directory tree into a single flat binary archive. C89, no dependencies. ## Building ```bash ./build.sh debug release tools # Unix build.bat debug release tools # Windows ``` ## Usage ```bash fpk create [-o output.fpk] [-p] [-q] [-v] input_dir fpk extract [-d output_dir] [-p] [-q] [-v] input.fpk fpk list input.fpk ``` `create` (alias `c`) walks `input_dir` recursively (skipping dotfiles) and writes an archive. If `-o` is omitted, the output name is derived from the input directory's basename plus `.fpk` (e.g. `assets/` -> `assets.fpk`). `extract` (alias `x`) extracts the entries in `input.fpk`. If `-d` is omitted, the output directory is derived from the archive's basename with `.fpk` stripped (e.g. `assets.fpk` -> `assets/`). `list` (alias `t`) prints the entries in `input.fpk` without extracting. Common flags: `-p` show progress, `-q` suppress the summary line, `-v` print each entry as it's processed. ```c #include struct fpk *pak = fpk_open("assets.fpk"); fpk_entry_t *entry = fpk_find(pak, "some/file.bin"); void *data = fpk_read(pak, entry, &size); fpk_close(pak); ``` See [docs/format.md](docs/format.md) for the on-disk layout. ## License Mozilla Public License 2.0 (MPL-2.0)