Build with Nix Env

Set up a reproducible development environment for OWASP Noir using Nix and Docker.

You can set up a reproducible development environment using Nix. This approach ensures consistency across different development machines and simplifies dependency management.

Installing Nix

If you don't have Nix installed, install it with:

# Multi-user installation (recommended for Linux/macOS)
sh <(curl -L https://nixos.org/nix/install) --daemon

# Single-user installation
sh <(curl -L https://nixos.org/nix/install) --no-daemon

For more details, see the official Nix installation guide.

Setup with Nix Flakes

The project uses Nix Flakes for development environment management.

Enable Flakes

Add to ~/.config/nix/nix.conf (or /etc/nix/nix.conf):

experimental-features = nix-command flakes

Enter Development Shell

cd noir
nix develop

This will automatically set up Crystal, shards, and all dependencies.

Alternative: Using Docker with Nix

For a completely isolated environment, you can use Docker:

docker run -it --rm -v $(pwd):/workspace -w /workspace nixos/nix bash

Inside the container, activate the development environment:

nix develop

This will set up all the necessary dependencies and tools for developing Noir in an isolated, reproducible environment.

Benefits

  • Reproducibility: Same environment across all machines
  • Isolation: No interference with system-wide dependencies
  • Consistency: Ensures all team members use the same tool versions
  • Easy Setup: Single command to get started

Next Steps

Once your Nix environment is set up, you can proceed with the standard build and test procedures.