Skip to content

definfo/dev-templates

Repository files navigation

Nix flake templates for easy dev environments

built with nix


NOTICE for recent changes

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}

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][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/projects

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

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.

  • 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 and node dependencies.
  • gtk3
  • libsoup
  • webkitgtk
  • cairo

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-parts][flake-parts] to all the templates.

About

Out-of-the-box dev environments for numerous languages, based on Nix flakes and flake-parts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 28