Skip to content

Repository files navigation

Nix flake templates for easy dev environments

built with nix

To initialize (where ${ENV} is listed in the table below):

nix flake init --template github:the-nix-way/dev-templates#${ENV}

Here's an example (for the rust template):

# Initialize in the current project
nix flake init --template github:the-nix-way/dev-templates#rust
# Create a new project
nix flake new --template github:the-nix-way/dev-templates#rust ${NEW_PROJECT_DIRECTORY}

How to use the templates

Once your preferred template has been initialized, you can use the provided shell in two ways:

  1. If you have nix-direnv installed, you can initialize the environment by running direnv allow.
  2. If you don't have nix-direnv installed, you can run nix develop to open up the Nix-defined shell.

Available templates

Language/framework/toolTemplate
Clojureclojure
C#csharp
Cuecue
Dhalldhall
Elixirelixir
Elmelm
Gleamgleam
Gogo
Hashicorp toolshashi
Haxehaxe
Javajava
Kotlinkotlin
LaTeXlatex
Nickelnickel
Nimnim
Nixnix
Node.jsnode
OCamlocaml
Open Policy Agentopa
PHPphp
Protobufprotobuf
Pulumipulumi
Purescriptpurescript
Rubyruby
Rustrust
Scalascala
[Shell]shell
Zigzig

Template contents

The sections below list what each template includes. In all cases, you're free to add and remove packages as you see fit; the templates are just boilerplate.

  • Ruby 3.2.2, plus the standard Ruby tools (bundle, gem, etc.)
  • Rust, including cargo, Clippy, and the other standard tools. The Rust version is determined as follows, in order:

    • From the rust-toolchain.toml file if present
    • From the rust-toolchain file if present
    • Version 1.70.0 if neither is present
  • rust-analyzer 2023-07-10

  • cargo-audit 0.17.0

  • cargo-deny 0.12.1

Code organization

All of the templates have only the root flake as a flake input. That root flake provides a common revision of Nixpkgs and flake-utils to all the templates.

About

Dev environments for numerous languages based on Nix flakes [maintainer=@lucperkins]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages