1
1
Fork 0
Dev environments for numerous languages based on Nix flakes
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Luc Perkins 0e3ef9a578
Merge pull request #14 from nothingmuch/csharp
Add C# development environment
6 days ago
.github Add FUNDING.yml 11 months ago
clojure Stable release 22.11 3 months ago
csharp Add C# development environment 2 weeks ago
cue Stable release 22.11 3 months ago
dhall Stable release 22.11 3 months ago
elixir Stable release 22.11 3 months ago
elm Stable release 22.11 3 months ago
gleam Stable release 22.11 3 months ago
go Stable release 22.11 3 months ago
hashi Stable release 22.11 3 months ago
haskell haskell: add haskell-language-server package 2 weeks ago
java Stable release 22.11 3 months ago
kotlin Stable release 22.11 3 months ago
latex Add latex environment 2 weeks ago
nickel Stable release 22.11 3 months ago
nim Stable release 22.11 3 months ago
nix nix: add rnix-lsp package 2 weeks ago
node Stable release 22.11 3 months ago
ocaml Stable release 22.11 3 months ago
opa Stable release 22.11 3 months ago
php Stable release 22.11 3 months ago
protobuf Stable release 22.11 3 months ago
purescript Stable release 22.11 3 months ago
python Stable release 22.11 3 months ago
ruby Stable release 22.11 3 months ago
rust Stable release 22.11 3 months ago
rust-toolchain Stable release 22.11 3 months ago
scala Stable release 22.11 3 months ago
shell Add unix shell script environment 2 weeks ago
zig Stable release 22.11 3 months ago
.editorconfig Add editorconfig file 11 months ago
.envrc Add helper scripts via Nix 11 months ago
.gitignore Add dvt script to flake outputs 8 months ago
README.md Merge pull request #14 from nothingmuch/csharp 6 days ago
flake.lock Stable release 22.11 3 months ago
flake.nix Merge pull request #14 from nothingmuch/csharp 6 days ago

README.md

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}

Note: All templates are pinned to the 22.11 release of Nixpkgs.

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
Clojure clojure
C# csharp
Cue cue
Dhall dhall
Elixir elixir
Elm elm
Gleam gleam
Go go
Hashicorp tools hashi
Java java
Kotlin kotlin
LaTeX latex
Nickel nickel
Nim nim
Nix nix
Node.js node
OCaml ocaml
Open Policy Agent opa
PHP php
Protobuf protobuf
Purescript purescript
Ruby ruby
Rust rust
Scala scala
[Shell] shell
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.

clojure

csharp

cue

dhall

elixir

elm

gleam

go

hashi

haskell

java

kotlin

latex

nickel

nim

nix

node

ocaml

opa

php

protobuf

purescript

python

ruby

  • Ruby 3.1.2p20, plus the standard Ruby tools (bundle, gem, etc.)

rust

  • 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.63.0 if neither is present
  • rust-analyzer 2022-08-01

  • cargo-audit 0.17.0

  • cargo-deny 0.12.1

  • cross 0.2.4

scala

shell

zig

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.