Dev environments for numerous languages based on Nix flakes [maintainer=@lucperkins]
Find a file
2022-07-31 17:13:55 +02:00
.github Add FUNDING.yml 2022-07-29 18:29:57 +02:00
dhall Update root flake 2022-07-31 17:13:38 +02:00
elixir Update root flake 2022-07-31 17:13:38 +02:00
gleam Update template flakes 2022-07-31 17:13:55 +02:00
go1.17 Update template flakes 2022-07-31 17:13:55 +02:00
go1.18 Update template flakes 2022-07-31 17:13:55 +02:00
java Update template flakes 2022-07-31 17:13:55 +02:00
kotlin Update template flakes 2022-07-31 17:13:55 +02:00
nix Update template flakes 2022-07-31 17:13:55 +02:00
node Update template flakes 2022-07-31 17:13:55 +02:00
protobuf Update template flakes 2022-07-31 17:13:55 +02:00
rust Update template flakes 2022-07-31 17:13:55 +02:00
scala Update template flakes 2022-07-31 17:13:55 +02:00
zig Update template flakes 2022-07-31 17:13:55 +02:00
.editorconfig Add editorconfig file 2022-07-12 02:01:42 +02:00
.envrc Add helper scripts via Nix 2022-07-29 00:42:22 +02:00
.gitignore Basic repo cleanup 2022-07-28 23:20:46 +02:00
flake.lock Update root flake 2022-07-31 17:13:38 +02:00
flake.nix small nit 2022-07-31 13:21:07 +02:00
README.md More README info 2022-07-31 17:13:00 +02:00

Nix flake templates for easy dev environments

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/tool Template
Dhall dhall
Elixir elixir
Gleam gleam
Go 1.17 go1_17
Go 1.18 go1_18
Java java
Kotlin kotlin
Nix nix
Node.js node
Protobuf protobuf
Rust rust
Scala scala
Zig zig

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.

dhall

elixir

gleam

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.