- Home
- Executable Packers
- papaw
papaw
What it is
papaw is a free Linux packer for executables that include statically linked third-party components. It targets devices with limited disk space by compressing programs and bundling them with a small decompressor of about 15–40 KB. Supported algorithms are LZMA2, LZMA1, Zstandard, and Deflate, and a packed executable can replace itself on disk when run.
The project is free and unencumbered software under the MIT license. It uses Meson and can be included as a Meson subproject; the README recommends `custom_target()` for running `papawify`. Prebuilt static binaries are available through GitHub releases, with example assets for aarch64, arm, armeb, i386, mips, mipsel, and x86_64. papaw is designed for portability across devices and avoids machine-specific assembly and newer system calls such as `fexecve()`. It can optionally provide very basic anti-debugging protection intended to discourage trivial reverse-engineering. The packed payload is extracted to a temporary file; when run as root, papaw mounts a tmpfs filesystem and lazily unmounts it before extraction.
For and against
For
- Compresses executables with four supported algorithms
- Small decompressor is about 15–40 KB
- Can be included as a Meson subproject
- Prebuilt binaries cover multiple architectures
- Free software under the MIT license
Against
- Supports Linux only
- Optional anti-debugging is described as very basic
- Payload extraction uses a temporary file
The verdict
papaw is a focused option for compressing statically linked executables, with Meson support and binaries for several architectures. Its temporary-file extraction behavior and Linux-only support are useful constraints to consider.
Who it suits
papaw suits developers packaging statically linked executables for Linux devices with limited disk space. Its Meson integration and multi-architecture release assets may fit projects that build across different device architectures.
Plans and prices
papaw
Free and unencumbered software under the MIT license
Read 8 Oct 2026 · github.com
On the record
- Anti-debugging
- It can optionally provide very basic anti-debugging protection intended to discourage trivial reverse-engineering techniques.github.com · read 8 Oct 2026
- Architecture coverage
- The v28 release lists example executable assets for aarch64, arm, armeb, i386, mips, mipsel, and x86_64.github.com · read 8 Oct 2026
- Build
- papaw uses Meson as its build system and can be used as a Meson subproject.github.com · read 8 Oct 2026
- Build integration
- papaw uses Meson and can be included as a Meson subproject, with custom_target() recommended for running papawify.github.com · read 8 Oct 2026
- Compression
- Supported algorithms are LZMA2, LZMA1, Zstandard, and Deflate.github.com · read 8 Oct 2026
- Download
- The README says prebuilt static binaries are available from the project's GitHub releases.github.com · read 8 Oct 2026
- Downloads
- The README says prebuilt static binaries are available through GitHub releases.github.com · read 8 Oct 2026
- Intended use
- The README describes papaw as designed for portability across devices and says it avoids machine-specific assembly and newer system calls such as fexecve().github.com · read 8 Oct 2026
- License
- The project is released as free and unencumbered software under the MIT license.github.com · read 8 Oct 2026
- Maintainer
- The GitHub profile identifies the repository owner as Dima Krasner and describes his work as low-level development specializing in C, Go, porting, *nix, and distro development.github.com · read 8 Oct 2026
- Portability
- The project avoids machine-specific assembly and newer system calls such as fexecve() to support portability across devices.github.com · read 8 Oct 2026
- Purpose
- papaw is a permissively licensed packer for executables with statically linked third-party components, intended for devices with limited disk space.github.com · read 8 Oct 2026
- Release assets
- The v28 release lists example binaries for architectures including aarch64, ARM, i386, MIPS, and x86_64.github.com · read 8 Oct 2026
- Replacement
- Packed executables can replace themselves on disk when run.github.com · read 8 Oct 2026
- Security
- papaw can optionally provide very basic anti-debugging protection intended to discourage trivial reverse-engineering techniques.github.com · read 8 Oct 2026
- Self replacement
- Packed executables can replace themselves on disk when run.github.com · read 8 Oct 2026
- Size reduction
- papaw compresses executables and packages them with a small decompressor executable of about 15–40 KB.github.com · read 8 Oct 2026
- Temporary files
- The payload is extracted to a temporary file; when run as root, papaw mounts a tmpfs filesystem and lazily unmounts it before extraction.github.com · read 8 Oct 2026