# Nix Flake for Zig This repository is a Nix flake packaging the [Zig](https://ziglang.com) compiler. The flake mirrors the binaries built officially by Zig and does not build them from source. This repository is meant to be consumed primarily as a flake but the `default.nix` can also be imported directly by non-flakes, too. The flake outputs are documented in `flake.nix` but an overview: * Default package and "app" is the latest released version * `packages.` for a tagged release * `packages.master` for the latest nightly release * `packages.master-` for a nightly release * `overlay` is an overlay that adds `zigpkgs` to be the packages exposed by this flake * `template.compiler-dev` to setup a development environment for Zig compiler development. ## Usage ### Flake In your `flake.nix` file: ```nix { inputs.zig.url = "github:mitchellh/zig-overlay"; outputs = { self, zig, ... }: { ... }; } ``` In a shell: ```sh # run the latest released version $ nix run 'github:mitchellh/zig-overlay' # open a shell with nightly version dated 2021-02-13 (oldest version available) $ nix shell 'github:mitchellh/zig-overlay#master-2021-02-13' # open a shell with latest nightly version $ nix shell 'github:mitchellh/zig-overlay#master' ``` ### Compiler Development This flake outputs a template that makes it easy to work on the Zig compiler itself. If you're looking to contribute to the Zig compiler, here are the easy steps to setup a working development environment: ```sh # clone zig and go into that directory $ git clone https://github.com/ziglang/zig.git $ cd zig # setup the template $ nix flake init -t 'github.com:mitchellh/zig-overlay#compiler-dev' # Two options: # (1) start a shell, this forces bash $ nix develop # (2) If you have direnv installed, you can start the shell environment # in your active shell (fish, zsh, etc.): $ direnv allow ``` ## Thanks This repository is originally hosted by the username `arqv`. This user and repository disappeared at some point and I had a local checkout so I've forked it, modified it, and reuploaded it here.