Typed Nix
Static type system for Nix programming language.
Nix is a tool that takes a unique approach to package management and system configuration, enabling developers to build reproducible, declarative, and reliable systems. This project introduces a typed layer for the Nix language, adding optional static typing, type inference, and structural type checking for Nix expressions while compiling down to standard Nix so existing tooling continues to work. Its primary goal is to improve the developer experience through straightforward yet flexible tooling, addressing long-standing ecosystem challenges such as dated documentation, opaque error messages, inconsistent formatting conventions, unreliable language server support, and a lack of interactive, extensible development tools. By improving clarity, tooling, and developer ergonomics, the project aims to do for the Nix ecosystem what TypeScript did for the JavaScript community: make large codebases easier to understand, maintain, and collaborate on.
- The project's own website: https://github.com/numtide
Run by Numtide
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).