saved
Every package is already installed
Hraness wrote this summary from a saved copy of the source. Quotations are taken word for word from the source.
gist
Farid Zakaria's omnibin is a FUSE filesystem that puts every nixpkgs binary ever shipped on PATH with zero install until a file is read. It indexes Hydra .ls metadata and nixpkgs-multiverse so tools like python3@3.6.2 resolve and unpack from cache.nixos.org on demand; a Docker image and NixOS module expose the same tree. Agents should query /omnibin/index.db rather than listing 881,933 binaries. First cold fetch took about 2.7 seconds in his demo.
ideas
- Omnibin puts every nixpkgs binary on PATH without installing. A FUSE mount exposes over 50,000 bare binary names (881,933 versioned entries) from 2013-2026 with 0 bytes on disk until a file is read.
- Hydra .ls files plus nixpkgs-multiverse power lazy fetch. The JSON listing beside each narinfo on cache.nixos.org indexes archive contents; nixpkgs-multiverse maps any (attribute, version) to the Hydra store path.
- Docker and NixOS can ship the full tree. An fmzakari/omnibin image and a NixOS services.omnibin module put the same on-demand binaries in containers and system packages.
- Agents should query the index, not list the tree. Bare ls /omnibin/bin shows only newest names; versioned forms resolve but stay unlisted, and /omnibin/README.md tells explorers to use index.db or omnibin which.
- Cold first access pays one NAR unpack. Zakaria's python3@3.6.2 demo took 2.7 seconds on first run and 35 ms once the store path was local.
quotes
“omnibin is a FUSE filesystem that puts every binary nixpkgs ever shipped on your $PATH.”
“There are 881,933 binaries in the tree, and it would take a long time to stat them all.”
“lists only the bare names, one per executable, each resolving to the newest package that provides it.”