Quick Start
Turn any Linux binary into a single portable file in under a minute.
The three-step version
Scaffold an AppDir from a single binary:
bashonelf bundle-libs ./mypkg --from-binary /path/to/mybinary --scan-dlopenThis creates
./mypkg/bin/mybinary, scans itsDT_NEEDEDand commondlopentargets, and copies every shared library it needs into./mypkg/lib/.Pack the AppDir into one executable:
bashonelf pack ./mypkg -o mybinary.onelf --command bin/mybinaryRun it:
bash./mybinary.onelf --any --args --you --like
The runtime mounts the package as a private FUSE filesystem in a user namespace, execs the target, and lets the kernel clean everything up on exit.
The recipe version
For anything reused or committed to a repo, use a recipe instead:
bash
onelf init --binary /path/to/mybinary
# Edit onelf.toml to taste, then:
onelf buildonelf.toml captures bundle settings, entrypoints, compression, metadata, update URL, and so on. See the Recipe File guide.
Dev loop
Iterate on a recipe without packing:
bash
onelf run --bundle # bundle libs, then run
onelf run # subsequent runs: just execInspect
bash
onelf info mybinary.onelf # metadata, entrypoints, sizes
onelf list mybinary.onelf # file tree
onelf verify mybinary.onelf # BLAKE3 integrity checkWhat's next
- AppDir Layout: how the directory is structured
- Recipe File: declarative packaging
- Execution Modes: how the runtime actually runs things
- Self-Update: delta updates over HTTP