Several language toolchains were removed due to low popularity.
Some other toolchains are migrating to better implementation from other projects.
Sorry for any inconvenience :(
To initialize (where ${ENV}
is listed in the table below):
nix flake init -t github:definfo/dev-templates#${ENV}
Once your preferred template has been initialized, you can use the provided shell in two ways:
- If you have [
nix-direnv
][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.
Language/framework/tool | Template/Project |
---|---|
C/C++ | c-cpp Also refer to (https://wiki.nixos.org/wiki/C) |
Coq | coq |
Go | gomod2nix |
Haskell | haskell-flake |
Haskell | cabal2nix |
Java | java |
Jupyter | uv2nix TODO |
Kotlin | kotlin |
LaTeX | latex |
Markdown | markdown |
Node.js | node |
Node.js | node2nix |
OCaml | ocaml |
OCaml | opam-nix |
Python | python |
Python | uv2nix |
Rust | rust |
Rust | naersk |
Rust | crate2nix |
Rust toolchains | fenix |
Scala | typelevel-nix |
Scala | scala-seed |
Scala | scala |
Shell | shell |
Tauri | tauri |
Typst | typst |
Typst | press |
Typst | typix |
Zig | zig2nix |
Zig | zon2nix |
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.
- clang-tools
- cmake
- codespell
- conan
- cppcheck
- doxygen
- gdb / lldb
- gtest
- lcov
- ninja
- vcpkg
- vcpkg-tool
- Coq
- Java
- Maven
- Gradle
- lombok
- google-java-format
- Kotlin
- Gradle
- texlive
- tectonic
- texlab
- texfmt
- pandoc
- pandoc
- typst
- mdformat
- prettier
- Node.js
- npm
- pnpm
- Yarn
- biome/deno/prettier
- Python
- uv
- (CUDA toolchain)
- OCaml
- Dune
- odoc
- ocamlformat
- dune-fmt (disabled by default)
- dune-opam-sync
- Rust toolchain (
rust-overlay
) - just
- cargo-audit
- cargo-bloat
- cargo-license
- cargo-llvm-cov (unsupported on darwin)
- cargo-nextest
- cargo-outdated
- cargo-show-asm
- samply
- valgrind (unsupported on darwin)
- watchexec
- bacon
- Scala
- sbt
- coursier
- scala-fmt
- shellcheck
- shfmt
- just
- typst
- typstyle
- tinymist
- pandoc
- Include
rust
andnode
dependencies. - gtk3
- libsoup
- webkitgtk
- cairo
All of the templates have only the root flake as a flake input. That root flake provides a common revision of [Nixpkgs] and [flake-parts
][flake-parts] to all the templates.