Bundle Nix derivations into single-file, portable executables that run anywhere without installation or root access.
nix-bundle is a tool that converts Nix derivations into single-file, portable executables. It solves the problem of distributing Nix-built applications to systems without Nix installed, enabling users to run complex software as standalone binaries without installation or root access.
Nix users and developers who need to distribute Linux applications as portable binaries, especially for environments where Nix is not available or where minimal dependencies are required.
Developers choose nix-bundle for its ability to create truly portable executables from Nix packages without runtime overhead, making it a lightweight alternative to containerized solutions like AppImage, FlatPak, or Snap.
Bundle Nix derivations to run anywhere! [maintainer=@matthewbauer, @Artturin]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Creates standalone executables that run on any Linux distro without installation or root access, as shown with examples like hello and Firefox in the README.
Unlike FlatPak or Snap, it doesn't require a separate runtime environment, making it lightweight and simple, as highlighted in the comparison table.
Uses Nix's deterministic builds to bundle complex packages consistently, allowing distribution of apps like Emacs and games with all dependencies.
Includes nix2appimage.sh script to generate AppImage files from Nix expressions, adding flexibility for graphical apps with .desktop files.
Executables have slow initialization because they unpack the entire archive upfront, as admitted in the README's drawbacks section.
Generated files are bulky (e.g., Firefox at 150MB) due to containing all dependencies, making distribution inefficient.
Only works on Linux with CAP_SYS_USER_NS enabled and proper permissions, limiting cross-platform use and requiring specific system setup.
The project is marked UNSTABLE with breaking changes possible, and AppImage support is experimental, limited to packages with .desktop files.