A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Eelco Dolstra 2df9cbeb47 Provide random access to cached NARs
E.g.

  $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \
    /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null
  real    0m4.139s

  $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \
    /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null
  real    0m0.024s

(Before, the second call took ~0.220s.)

This will use a NAR listing in
/tmp/nars/b0w2hafndl09h64fhb86kw6bmhbmnpm1.ls containing all metadata,
including the offsets of regular files inside the NAR. Thus, we don't
need to read the entire NAR. (We do read the entire listing, but
that's generally pretty small. We could use a SQLite DB by borrowing
some more code from nixos-channel-scripts/file-cache.hh.)

This is primarily useful when Hydra is serving files from an S3 binary
cache, in particular when you have giant NARs. E.g. we had some 12 GiB
NARs, so accessing individuals files was pretty slow.
2017-12-07 01:07:07 +01:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs <nix/fetchurl.nix>: Support sha512 argument 2017-07-04 14:45:50 +02:00
doc/manual Add a warning about the 'trusted-users' option 2017-11-21 18:49:52 +01:00
maintainers Update upload-release script 2017-01-03 11:42:56 +01:00
misc docker: ensure that the installation works for users other than 'root', too 2017-10-07 17:28:34 +02:00
mk Show when tests are skipped 2017-11-07 12:09:57 +01:00
perl Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
scripts install-darwin-multi-user.sh: Remove superfluous nix.conf settings 2017-11-20 17:32:34 +01:00
src Provide random access to cached NARs 2017-12-07 01:07:07 +01:00
tests nix ls-{nar,store}: Return offset of files in the NAR if known 2017-12-07 01:07:07 +01:00
.dir-locals.el Add .dir-locals.el for Emacs 2016-01-28 11:12:04 +01:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Reverse retry logic to retry in all but a few cases 2017-10-02 23:22:02 -04:00
.travis.yml Test the installer 2017-07-14 12:11:04 -04:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac Add a seccomp filter to prevent creating setuid/setgid binaries 2017-05-29 16:14:10 +02:00
COPYING
local.mk Simplify build by including nlohmann/json.hpp 2017-12-04 17:11:36 +01:00
Makefile Remove nix-mode.el from Nix. 2017-08-19 21:16:30 -07:00
Makefile.config.in Add --with-sandbox-shell configure flag 2017-05-15 17:36:32 +02:00
nix.spec.in Fix RPM build 2017-10-24 15:44:29 +02:00
README.md Fix minor grammatical nitpick ("it's" vs. "its") in README.md. 2017-03-22 10:11:23 -04:00
release-common.nix release-common: Fix busybox builtins (busybox >= 1.27) 2017-10-07 07:43:55 -05:00
release.nix Simplify build by including nlohmann/json.hpp 2017-12-04 17:11:36 +01:00
shell.nix Simplify build by including nlohmann/json.hpp 2017-12-04 17:11:36 +01:00
version Bump 2016-01-20 16:34:37 +01:00

Nix, the purely functional package manager

Nix is a new take on package management that is fairly unique. Because of its purity aspects, a lot of issues found in traditional package managers don't appear with Nix.

To find out more about the tool, usage and installation instructions, please read the manual, which is available on the Nix website at http://nixos.org/nix/manual.

Contributing

Take a look at the Hacking Section of the manual. It helps you to get started with building Nix from source.

License

Nix is released under the LGPL v2.1

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.