papaw vs UPX
papaw
github.comUPX
upx.github.ioSide by side
| Figure | papaw | UPX |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Executable Packers | 7.9 (#8) | 7.4 (#16) |
| Compression | Supported algorithms are LZMA2, LZMA1, Zstandard, and Deflate. | The project says UPX typically reduces program and DLL file sizes by around 50%–70%. |
| License | The project is released as free and unencumbered software under the MIT license. | UPX is distributed with full source under GPL v2 or later, with a special exception allowing unmodified UPX to compress commercial programs. |
| Purpose | papaw is a permissively licensed packer for executables with statically linked third-party components, intended for devices with limited disk space. | UPX is a portable executable packer and file compressor for several executable formats. |
Plans
In their own words
papaw
papaw is a Linux executable packer for programs that include statically linked third-party components, aimed at devices with limited disk space. It compresses executables and bundles them with a decompressor of about 15–40 KB. Supported algorithms are LZMA2, LZMA1, Zstandard and Deflate, and packed executables can replace themselves on disk when run. The project is free and unencumbered software under the MIT license, and can be self-hosted. 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. To support portability, the project avoids machine-specific assembly and newer system calls such as `fexecve()`. Optional very basic anti-debugging protection is intended to discourage trivial reverse-engineering techniques. The payload is extracted to a temporary file; when run as root, papaw mounts a tmpfs filesystem and lazily unmounts it before extraction.
UPX
UPX is a portable executable packer and file compressor for Windows, macOS, and Linux. It works with executable formats including Windows programs and DLLs, macOS apps, and Linux executables; listed formats also include PE, ELF, Mach-O, COFF, DOS, and Atari/TOS. The project says compression commonly reduces program and DLL sizes by around 50%–70%. For most supported formats, compressed programs are self-contained and run as before without runtime or memory penalties. UPX can list, test, and unpack executables, and maintains checksums for compressed and uncompressed files. It is free software under GPL v2 or later, with a special exception allowing unmodified UPX to compress commercial programs. UPX does not add protection or encryption, and the project advises handling only trusted files. Linux users should account for documented tradeoffs: compressed executables may require more RAM or swap when multiple processes run, and the generic Linux format recreates the original file in /tmp before launch.