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 90ad02bf62 Enable HTTP/2 support
The binary cache store can now use HTTP/2 to do lookups. This is much
more efficient than HTTP/1.1 due to multiplexing: we can issue many
requests in parallel over a single TCP connection. Thus it's no longer
necessary to use a bunch of concurrent TCP connections (25 by
default).

For example, downloading 802 .narinfo files from
https://cache.nixos.org/, using a single TCP connection, takes 11.8s
with HTTP/1.1, but only 0.61s with HTTP/2.

This did require a fairly substantial rewrite of the Downloader class
to use the curl multi interface, because otherwise curl wouldn't be
able to do multiplexing for us. As a bonus, we get connection reuse
even with HTTP/1.1. All downloads are now handled by a single worker
thread. Clients call Downloader::enqueueDownload() to tell the worker
thread to start the download, getting a std::future to the result.
2016-09-14 16:36:02 +02:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs Remove nar.nix 2016-08-11 17:12:40 +02:00
doc/manual doc: move set functor para to Sets section 2016-08-26 19:19:24 +02:00
maintainers upload-release.pl: Update Nixpkgs 2016-09-07 15:34:54 +02:00
misc nix-daemon.service: Set $XDG_CACHE_HOME 2016-08-31 11:55:20 +02:00
mk Don't pass "--no-copy-dt-needed-entries" option to linker on FreeBSD. 2015-10-06 22:28:30 +02:00
perl makeFixedOutputPath(): Drop superfluous HashType argument 2016-07-26 21:25:52 +02:00
scripts Merge branch 'nix-build-c++' 2016-08-31 12:10:21 -04:00
src Enable HTTP/2 support 2016-09-14 16:36:02 +02:00
tests Fix gc-runtime test 2016-09-12 13:40:07 +02:00
.dir-locals.el Add .dir-locals.el for Emacs 2016-01-28 11:12:04 +01:00
.gitignore Merge branch 'nix-build-c++' 2016-08-31 12:10:21 -04:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac remove otool check 2016-08-13 15:30:35 -07:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
dev-shell Add 32bit linux clause to dev-shell 2016-03-22 11:38:56 +00:00
local.mk Don't depend on git when generating source tarball 2015-10-15 11:53:45 -07:00
Makefile Merge branch 'nix-build-c++' 2016-08-31 12:10:21 -04:00
Makefile.config.in use $(LIBLZMA_LIBS) instead of -llzma 2016-05-31 03:20:11 -04:00
nix.spec.in Revert "nix.spec.in: Build from the .tar.xz file." 2016-08-30 13:38:18 +02:00
README.md Capitalize Nix 2016-07-21 11:08:13 +02:00
release.nix Drop Fedora 19/20 builds 2016-08-30 14:36:04 +02: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 it's 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 (http://www.OpenSSL.org/).