1# Preface {#preface}
2
3The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the
4[Nix package manager](https://nixos.org/nix/), released under a
5[permissive MIT license](https://github.com/NixOS/nixpkgs/blob/master/COPYING).
6Packages are available for several platforms, and can be used with the Nix
7package manager on most GNU/Linux distributions as well as [NixOS](https://nixos.org/nixos).
8
9This document is the user [_reference_](https://nix.dev/contributing/documentation/diataxis#reference) manual for Nixpkgs.
10It describes entire public interface of Nixpkgs in a concise and orderly manner, and all relevant behaviors, with examples and cross-references.
11
12To discover other kinds of documentation:
13- [nix.dev](https://nix.dev/): Tutorials and guides for getting things done with Nix
14- [NixOS **Option Search**](https://search.nixos.org/options) and reference documentation
15- [Nixpkgs **Package Search**](https://search.nixos.org/packages)
16- [**NixOS** manual](https://nixos.org/manual/nixos/stable/): Reference documentation for the NixOS Linux distribution
17- [`CONTRIBUTING.md`](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md): Contributing to Nixpkgs, including this manual
18
19## Overview of Nixpkgs {#overview-of-nixpkgs}
20
21Nix expressions describe how to build packages from source and are collected in
22the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
23collection are Nix expressions for
24[NixOS modules](https://nixos.org/nixos/manual/index.html#sec-writing-modules).
25With these expressions the Nix package manager can build binary packages.
26
27Packages, including the Nix packages collection, are distributed through
28[channels](https://nixos.org/nix/manual/#sec-channels). The collection is
29distributed for users of Nix on non-NixOS distributions through the channel
30`nixpkgs-unstable`. Users of NixOS generally use one of the `nixos-*` channels,
31e.g. `nixos-22.11`, which includes all packages and modules for the stable NixOS
3222.11. Stable NixOS releases are generally only given
33security updates. More up to date packages and modules are available via the
34`nixos-unstable` channel.
35
36Both `nixos-unstable` and `nixpkgs-unstable` follow the `master` branch of the
37nixpkgs repository, although both do lag the `master` branch by generally
38[a couple of days](https://status.nixos.org/). Updates to a channel are
39distributed as soon as all tests for that channel pass, e.g.
40[this table](https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
41shows the status of tests for the `nixpkgs-unstable` channel.
42
43The tests are conducted by a cluster called [Hydra](https://nixos.org/hydra/),
44which also builds binary packages from the Nix expressions in Nixpkgs for
45`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`.
46The binaries are made available via a [binary cache](https://cache.nixos.org).
47
48The current Nix expressions of the channels are available in the
49[nixpkgs repository](https://github.com/NixOS/nixpkgs) in branches
50that correspond to the channel names (e.g. `nixos-22.11-small`).