{"id":13494658,"url":"https://github.com/the-nix-way/dev-templates","last_synced_at":"2025-05-14T11:10:59.345Z","repository":{"id":44692574,"uuid":"512942885","full_name":"the-nix-way/dev-templates","owner":"the-nix-way","description":"Dev environments for numerous languages based on Nix flakes [maintainer=@lucperkins]","archived":false,"fork":false,"pushed_at":"2025-05-12T10:23:29.000Z","size":444,"stargazers_count":1630,"open_issues_count":10,"forks_count":133,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-12T11:34:56.084Z","etag":null,"topics":["flakes","nix","reproducibility"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/the-nix-way.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["lucperkins"]}},"created_at":"2022-07-12T00:03:07.000Z","updated_at":"2025-05-12T10:23:33.000Z","dependencies_parsed_at":"2023-12-21T20:14:03.513Z","dependency_job_id":"102d9aad-b9b2-48d3-bbe2-aff41e8e4a9a","html_url":"https://github.com/the-nix-way/dev-templates","commit_stats":{"total_commits":221,"total_committers":26,"mean_commits":8.5,"dds":0.2171945701357466,"last_synced_commit":"ff07f4fb5cb359647bc434ad2a9ef98f3cd5281f"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-nix-way%2Fdev-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-nix-way%2Fdev-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-nix-way%2Fdev-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-nix-way%2Fdev-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/the-nix-way","download_url":"https://codeload.github.com/the-nix-way/dev-templates/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129492,"owners_count":22019628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flakes","nix","reproducibility"],"created_at":"2024-07-31T19:01:26.920Z","updated_at":"2025-05-14T11:10:59.330Z","avatar_url":"https://github.com/the-nix-way.png","language":"Nix","funding_links":["https://github.com/sponsors/lucperkins"],"categories":["Nix","Learning"],"sub_categories":[],"readme":"# Nix flake templates for easy dev environments\n\n[![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org)\n\nTo initialize (where `${ENV}` is listed in the table below):\n\n```shell\nnix flake init --template \"https://flakehub.com/f/the-nix-way/dev-templates/*#${ENV}\"\n```\n\nHere's an example (for the [`rust`](./rust) template):\n\n```shell\n# Initialize in the current project\nnix flake init --template \"https://flakehub.com/f/the-nix-way/dev-templates/*#rust\"\n\n# Create a new project\nnix flake new --template \"https://flakehub.com/f/the-nix-way/dev-templates/*#rust\" ${NEW_PROJECT_DIRECTORY}\n```\n\n## How to use the templates\n\nOnce your preferred template has been initialized, you can use the provided shell in two ways:\n\n1. If you have [`nix-direnv`][nix-direnv] installed, you can initialize the environment by running `direnv allow`.\n2. If you don't have `nix-direnv` installed, you can run `nix develop` to open up the Nix-defined shell.\n\n## Available templates\n\n| Language/framework/tool          | Template                              |\n| :------------------------------- | :------------------------------------ |\n| [Bun]                            | [`bun`](./bun/)                       |\n| [C]/[C++]                        | [`c-cpp`](./c-cpp/)                   |\n| [Clojure]                        | [`clojure`](./clojure/)               |\n| [Cue]                            | [`cue`](./cue/)                       |\n| [Dhall]                          | [`dhall`](./dhall/)                   |\n| [Elixir]                         | [`elixir`](./elixir/)                 |\n| [Elm]                            | [`elm`](./elm/)                       |\n| Empty (change at will)           | [`empty`](./empty)                    |\n| [Gleam]                          | [`gleam`](./gleam/)                   |\n| [Go]                             | [`go`](./go/)                         |\n| [Hashicorp] tools                | [`hashi`](./hashi/)                   |\n| [Haskell]                        | [`haskell`](./haskell/)               |\n| [Haxe]                           | [`haxe`](./haxe/)                     |\n| [Java]                           | [`java`](./java/)                     |\n| [Jupyter]                        | [`jupyter`](./jupyter/)               |\n| [Kotlin]                         | [`kotlin`](./kotlin/)                 |\n| [LaTeX]                          | [`latex`](./latex/)                   |\n| [Nickel]                         | [`nickel`](./nickel/)                 |\n| [Nim]                            | [`nim`](./nim/)                       |\n| [Nix]                            | [`nix`](./nix/)                       |\n| [Node.js][node]                  | [`node`](./node/)                     |\n| [OCaml]                          | [`ocaml`](./ocaml/)                   |\n| [Odin]                           | [`odin`](./odin/)                     |\n| [Open Policy Agent][opa]         | [`opa`](./opa)                        |\n| [PHP]                            | [`php`](./php/)                       |\n| [PlatformIO]                     | [`platformio`](./platformio/)         |\n| [Protobuf]                       | [`protobuf`](./protobuf/)             |\n| [Pulumi]                         | [`pulumi`](./pulumi/)                 |\n| [Purescript]                     | [`purescript`](./purescript/)         |\n| [Python]                         | [`python`](./python/)                 |\n| [R]                              | [`r`](./r/)                           |\n| [Ruby]                           | [`ruby`](./ruby/)                     |\n| [Rust]                           | [`rust`](./rust/)                     |\n| [Rust from toolchain file][rust] | [`rust-toolchain`](./rust-toolchain/) |\n| [Scala]                          | [`scala`](./scala/)                   |\n| Shell                            | [`shell`](./shell/)                   |\n| [SWI-prolog]                     | [`swi-prolog`](./swi-prolog/)         |\n| [Swift]                          | [`swift`](./swift)                    |\n| [Vlang]                          | [`vlang`](./vlang/)                   |\n| [Zig]                            | [`zig`](./zig/)                       |\n\n## Template contents\n\nThe 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.\n\n### [`bun`](./bun/)\n\n- [bun]\n\n### [`c-cpp`](./c-cpp/)\n\n- [clang-tools]\n- [cmake]\n- [codespell]\n- [conan]\n- [cppcheck]\n- [doxygen]\n- [gdb]\n- [gtest]\n- [lcov]\n- [vcpkg]\n- [vcpkg-tool]\n\n### [`clojure`](./clojure/)\n\n- [Clojure]\n- [Boot]\n- [Leiningen]\n\n### [`cue`](./cue/)\n\n- [Cue]\n\n### [`dhall`](./dhall)\n\n- [Dhall]\n- [dhall-bash]\n- [dhall-docs]\n- [dhall-json]\n- [dhall-lsp-server]\n- [dhall-nix]\n- [dhall-nixpkgs]\n- [dhall-openapi]\n- [dhall-toml]\n- [dhall-yaml]\n\n### [`elixir`](./elixir/)\n\n- [Elixir], including [mix] and [IEx]\n- [gigalixir] (Linux only)\n\n### [`elm`](./elm/)\n\n- [Elm]\n- [elm2nix]\n\n### [Empty](./empty/)\n\nA dev template that's fully customizable.\n\n### [`gleam`](./gleam/)\n\n- [Gleam]\n\n### [`go`](./go/)\n\n- [Go]\n- Standard Go tools ([goimports], [godoc], and others)\n- [golangci-lint]\n\n### [`hashi`](./hashi/)\n\n- [Packer]\n- [Terraform]\n- [Nomad]\n- [Vault]\n- [nomad-autoscaler]\n- [nomad-pack]\n- [levant]\n- [damon]\n- [Terragrunt]\n- [tflint]\n\n### [`haskell`](./haskell/)\n\n- [GHC][haskell]\n- [cabal]\n\n### [`haxe`](./haxe/)\n\n- [Haxe]\n\n### [`java`](./java/)\n\n- [Java]\n- [Maven]\n- [Gradle]\n- [jdtls]\n\n### [`jupyter`](./jupyter/)\n\n- [Jupyter core][jupyter]\n\n### [`kotlin`](./kotlin/)\n\n- [Kotlin]\n- [Gradle]\n\n### [`latex`](./latex/)\n\n- [texlive]\n- [tectonic]\n- [texlab]\n\n### [`lean4`](./lean4/)\n\n- [Lean]\n\n### [`nickel`](./nickel/)\n\n- [Nickel]\n\n### [`nim`](./nim)\n\n- [Nim]\n- [nimble]\n\n### [`nix`](./nix/)\n\n- [Cachix]\n- [dhall-to-nix]\n- [lorri]\n- [niv]\n- [nixfmt]\n- [statix]\n- [vulnix]\n\n### [`node`](./node/)\n\n- [Node.js][node]\n- [npm]\n- [pnpm]\n- [Yarn]\n- [node2nix]\n\n### [`ocaml`](./ocaml/)\n\n- [OCaml]\n- [Dune]\n- [odoc]\n- [ocamlformat]\n\n### [`odin`](./odin/)\n\n- [Odin]\n\n### [`opa`](./opa/)\n\n- [Open Policy Agent][opa]\n- [Conftest]\n\n### [`php`](./php/)\n\n- [PHP]\n- [Composer]\n\n### [`platformio`](./platformio/)\n\n- [PlatformIO]\n\n### [`protobuf`](./protobuf/)\n\n- The [Buf CLI][buf]\n- [protoc][protobuf]\n\n### [`pulumi`](./pulumi/)\n\n- [Pulumi]\n- [Python]\n- [Go]\n- [Node.js][node]\n- [dotnet]\n- [Java] and [Maven]\n- [jq]\n\n### [`purescript`](./purescript/)\n\n- [Purescript] (purs)\n- [Spago]\n- [purescript-language-server]\n- [purs-tidy]\n\n### [`python`](./python/)\n\n- [Python]\n- [pip]\n\n### [`r`](./r/)\n\n- [R]\n- [rmarkdown]\n- [knitr] ([pandoc] and [texlive])\n\n### [`ruby`](./ruby/)\n\n- [Ruby], plus the standard Ruby tools (`bundle`, `gem`, etc.)\n\n### [`rust`](./rust/)\n\n- [Rust], including [cargo], [Clippy], and the other standard tools. The Rust version is determined as follows, in order:\n\n  - From the `rust-toolchain.toml` file if present\n  - From the `rust-toolchain` file if present\n  - Version 1.78.0 if neither is present\n\n- [rust-analyzer]\n- [cargo-edit]\n- [cargo-deny]\n\n### [`scala`](./scala/)\n\n- [Scala] (plus [Java])\n- [sbt]\n\n### [`shell`](./shell/)\n\n- [shellcheck]\n\n### [`swi-prolog`](./swi-prolog/)\n\n- [swipl][swi-prolog]\n\n### [`swift`](./swift/)\n\n- [Swift]\n- [sourcekit-lsp]\n\n### [`vlang`](./vlang/)\n\n- [Vlang]\n\n### [`zig`](./zig/)\n\n- [Zig]\n- [LLDB]\n- [ZLS]\n\n[boot]: https://boot-clj.com\n[buf]: https://github.com/bufbuild/buf\n[bun]: https://bun.sh\n[C]: https://open-std.org/jtc1/sc22/wg14\n[C++]: https://isocpp.org\n[cabal]: https://haskell.org/cabal\n[cachix]: https://cachix.org\n[cargo]: https://doc.rust-lang.org/cargo\n[cargo-audit]: https://crates.io/crates/cargo-audit\n[cargo-deny]: https://crates.io/crates/cargo-deny\n[cargo-edit]: https://crates.io/crates/cargo-edit\n[clang-tools]: https://clang.llvm.org\n[clippy]: https://github.com/rust-lang/rust-clippy\n[clojure]: https://clojure.org\n[cmake]: https://cmake.org\n[codespell]: https://github.com/codespell-project/codespell\n[composer]: https://getcomposer.org\n[conan]: https://conan.io\n[conftest]: https://conftest.dev\n[cppcheck]: http://cppcheck.sourceforge.net\n[cue]: https://cuelang.org\n[damon]: https://github.com/hashicorp/damon\n[dhall]: https://dhall-lang.org\n[dhall-bash]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-bash\n[dhall-docs]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-docs\n[dhall-json]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-json\n[dhall-lsp-server]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-lsp-server\n[dhall-nix]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-nix\n[dhall-nixpkgs]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-nixpkgs\n[dhall-openapi]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-openapi\n[dhall-to-nix]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-nix\n[dhall-toml]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-toml\n[dhall-yaml]: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-yaml\n[dotnet]: https://dotnet.microsoft.com/en-us\n[doxygen]: https://doxygen.nl\n[dune]: https://dune.build\n[elixir]: https://elixir-lang.org\n[elm]: https://elm-lang.org\n[elm2nix]: https://github.com/cachix/elm2nix\n[gdb]: https://gnu.org/software/gdb\n[gigalixir]: https://gigalixir.com\n[gleam]: https://gleam.run\n[go]: https://go.dev\n[godoc]: https://pkg.go.dev/golang.org/x/tools/cmd/godoc\n[goimports]: https://pkg.go.dev/golang.org/x/tools/cmd/goimports\n[golangci-lint]: https://github.com/golangci/golangci-lint\n[gradle]: https://gradle.org\n[gtest]: https://github.com/google/googletest\n[hashicorp]: https://hashicorp.com\n[haskell]: https://haskell.org\n[haxe]: https://haxe.org\n[iex]: https://hexdocs.pm/iex/IEx.html\n[java]: https://java.com\n[jdtls]: https://projects.eclipse.org/projects/eclipse.jdt.ls\n[jq]: https://jqlang.github.io/jq\n[jupyter]: https://jupyter.org\n[knitr]: https://yihui.org/knitr\n[kotlin]: https://kotlinlang.org\n[latex]: https://latex-project.org\n[lean]: https://lean-lang.org\n[lcov]: https://ltp.sourceforge.net/coverage/lcov.php\n[leiningen]: https://leiningen.org\n[levant]: https://github.com/hashicorp/levant\n[lldb]: https://lldb.llvm.org\n[lorri]: https://github.com/target/lorri\n[maven]: https://maven.apache.org\n[mix]: https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html\n[mono]: https://mono-project.com\n[msbuild]: https://github.com/dotnet/msbuild\n[nickel]: https://nickel-lang.org\n[nim]: https://nim-lang.org\n[nimble]: https://github.com/nim-lang/nimble\n[niv]: https://github.com/nmattia/niv\n[nix]: https://nixos.org\n[nixfmt]: https://github.com/serokell/nixfmt\n[nixpkgs]: https://github.com/NixOS/nixpkgs\n[nix-direnv]: https://github.com/nix-community/nix-direnv\n[node]: https://nodejs.org\n[node2nix]: https://github.com/svanderburg/node2nix\n[nomad]: https://nomadproject.io\n[nomad-autoscaler]: https://github.com/hashicorp/nomad-autoscaler\n[nomad-pack]: https://github.com/hashicorp/nomad-pack\n[npm]: https://npmjs.org\n[ocaml]: https://ocaml.org\n[ocamlformat]: https://github.com/ocaml-ppx/ocamlformat\n[odoc]: https://github.com/ocaml/odoc\n[odin]: https://github.com/odin-lang/Odin\n[omnisharp-roslyn]: https://github.com/OmniSharp/omnisharp-roslyn\n[opa]: https://openpolicyagent.org\n[pandoc]: https://pandoc.org\n[packer]: https://packer.io\n[pip]: https://pypi.org/project/pip\n[phoenix]: https://phoenixframework.org\n[php]: https://php.net\n[platformio]: https://platformio.org\n[python]: https://python.org\n[pnpm]: https://pnpm.io\n[protobuf]: https://developers.google.com/protocol-buffers\n[pulumi]: https://pulumi.com\n[purescript]: https://github.com/purescript/purescript\n[purescript-language-server]: https://github.com/nwolverson/purescript-language-server\n[purs-tidy]: https://github.com/natefaubion/purescript-tidy\n[python]: https://python.org\n[r]: https://r-project.org\n[release]: https://github.com/NixOS/nixpkgs/releases/tag/22.11\n[rmarkdown]: https://rmarkdown.rstudio.com\n[ruby]: https://ruby-lang.org\n[rust]: https://rust-lang.org\n[rust-analyzer]: https://rust-analyzer.github.io\n[scala]: https://scala-lang.org\n[shellcheck]: https://shellcheck.net\n[statix]: https://github.com/nerdypepper/statix\n[sbt]: https://scala-sbt.org\n[sourcekit-lsp]: https://github.com/swiftlang/sourcekit-lsp\n[spago]: https://github.com/purescript/spago\n[swi-prolog]: https://www.swi-prolog.org\n[swift]: https://swift.org\n[tectonic]: https://tectonic-typesetting.github.io\n[terraform]: https://terraform.io\n[terragrunt]: https://terragrunt.gruntwork.io\n[texlab]: https://github.com/latex-lsp/texlab\n[texlive]: https://tug.org/texlive\n[tflint]: https://github.com/terraform-linters/tflint\n[vault]: https://vaultproject.io\n[vcpkg]: https://vcpkg.io\n[vcpkg-tool]: https://github.com/microsoft/vcpkg-tool\n[vulnix]: https://github.com/flyingcircusio/vulnix\n[yarn]: https://yarnpkg.com\n[vlang]: https://vlang.io\n[zig]: https://ziglang.org\n[zls]: https://github.com/zigtools/zls\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-nix-way%2Fdev-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthe-nix-way%2Fdev-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-nix-way%2Fdev-templates/lists"}