Skip to content
Draft
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,24 +50,36 @@ Explanations of history and ideas in the Nix ecosystem
:::
::::

## What can you do with Nix?

The following list illustrates some of what can be achieved with the Nix ecosystem:

- {ref}`Reproducible development environments <ad-hoc-envs>`.
- Easy installation of software over URLs.
- Easy transfer of software environments between computers.
- {ref}`Declarative specification of Linux machines <deploy-nixos-using-terraform>`.
- {ref}`Reproducible integration testing using virtual machines <integration-testing-vms>`.
- Avoidance of version conflicts with already installed software.
- Installing software from source code.
- {ref}`Transparent build caching using binary caches <github-actions>`.
- Strong support for software auditability.
- {ref}`First-class cross compilation support <cross-compilation>`.
- Remote builds.
- Remote deployments.
- Atomic upgrades and rollbacks.

## What is Nix?

[Nix](https://github.com/NixOS/nix) allows treating Unix processes and file system operations as pure functions.

It is the basis of a growing ecosystem of tools that facilitate repeatable results in software development:
- [Nixpkgs](https://github.com/nixos/nixpkgs) is [the largest, most up-to-date software repository in the world](https://repology.org/repositories/graphs).
- [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos) is a Linux distribution that can be configured fully declaratively.

## How to use software from Nixpkgs

This is what you can do with software from Nixpkgs:
- Run **standalone programs** locally with Nix
- Use **libraries or tools** to build software with Nixpkgs
- Deploy **services** to machines running NixOS

## What else can you do with Nix?

The following list illustrates some examples of what can be achieved with the Nix ecosystem:
- {ref}`Reproducible development environments <ad-hoc-envs>`
- Easy installation of software over URLs and from source code
- Easy transfer of software environments between computers
- {ref}`Declarative specification of Linux machines <deploy-nixos-using-terraform>`
- {ref}`Reproducible integration testing using virtual machines <integration-testing-vms>`
- Avoidance of version conflicts with already installed software
- {ref}`Transparent build caching using binary caches <github-actions>`
- Strong support for software auditability
- {ref}`First-class cross compilation support <cross-compilation>`
- Remote builds
- Remote deployments
- Atomic upgrades and rollbacks

## Who is Nix for?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pkgs.dockerTools.buildImage {
:::{note}
If you're running **macOS** or any platform other than `x86_64-linux`, you'll need to either:

- [Set up a remote builder](https://github.com/nix-dot-dev/nix.dev/issues/157) to build on Linux
- [Set up a remote builder](distributed-build-setup-tutorial) to build on Linux
- {ref}`Cross compile to Linux <cross-compilation>` by replacing `pkgsLinux.hello` with `pkgs.pkgsCross.musl64.hello`
:::

Expand Down
Loading