Introduction
StaticX takes a typical dynamic executable and bundles it, along with all of its shared library dependencies, into a single executable. This resulting executable is actually the StaticX bootloader with an attached archive containing the user executable and libraries. The bootloader will extract the archive to a temporary directory, fix up the executable in its new home, launch it, and clean up after it exits.
StaticX is inspired by PyInstaller, and includes special provisions for working well with PyInstalled executables as input:
__________ __________ ________________
| | | \ | |
| Python | | \ | PyInstalled |
| App | --> | PyInstaller > --> | App |
| | | / | (reqs libc...) |
|__________| |___________/ |________________|
|
+-------------------------------+
| __________ ________________
| | \ | |
| | \ | StaticX |
+--> | StaticX > --> | App |
| / | |
|___________/ |________________|