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-direnvinstalled, you can runnix developto 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 |
| Java | java |
| Kotlin | kotlin |
| LaTeX | latex |
| Markdown | markdown |
| Node.js | node |
| OCaml | ocaml |
| Python | python |
| Rust | rust |
| Scala | scala |
| Shell | shell |
| Tauri | tauri |
| Typst | typst |
| Language/framework/tool | Template/Project |
|---|---|
| Go | gomod2nix |
| Haskell | haskell-flake |
| Haskell | cabal2nix |
| Node.js | node2nix |
| OCaml | opam-nix |
| Python | uv2nix |
| Rust | naersk |
| Rust | crate2nix |
| Rust toolchains | fenix |
| Scala | typelevel-nix |
| Scala | scala-seed |
| 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
- Node.js
- npm
- pnpm
- Yarn
- biome
- 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
rustandnodedependencies. - 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]
- [
flake-parts][flake-parts]
to all the templates.