4 KiB
4 KiB
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:
- If you have
nix-direnv
installed, you can initialize the environment by runningdirenv allow
. - If you don't have
nix-direnv
installed, you can runnix 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
- Dhall 1.40.2
dhall-bash
dhall-csv
(Linux only)dhall-docs
dhall-haskell
(Linux only)dhall-json
dhall-lsp-server
dhall-nix
dhall-nixpkgs
dhall-openapi
dhall-text
(Linux only)dhall-toml
dhall-yaml
elixir
gleam
- Gleam 0.22.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.