Skip to content

Ecosystem Overview

This is the suite of open source projects the Denful community has been building, focused and composable pieces that span Aspect oriented Nix configuration, algebraic effects, interaction nets, functional reactive programming, and Nix tooling. Each one solves a specific problem and works on its own or together with the rest. The latest and most ambitious of vic’s projects is dnx, a new optimal Nix runtime, and it is where most of vic’s energy goes today.

Star History Chart

The original and largest cluster: composable, aspect-oriented Nix configuration tooling.

graph TD
  dendrix["dendrix, community distribution"]
  denful["denful, facet distribution"]
  den["den, configuration framework"]
  fa["flake-aspects, aspect composition"]
  ff["flake-file, flake.nix generator"]
  it["import-tree, recursive module imports"]
  wi["with-inputs, non-flake inputs"]
  cm["checkmate, CI & testing"]
  uf["dendritic-unflake, non-flake examples"]
  dd["den-diagram, visualization"]

  dendrix --> den
  denful --> den
  denful --> fa
  den --> fa
  den --> ff
  den --> it
  den --> cm
  den --> dd
  dendrix --> cm
  fa -.-> ff
  wi -.-> ff
  uf -.-> wi
  uf -.-> fa

flake-aspects

The foundation. Zero-dependency aspect composition, transposition, dependency DAGs, parametric providers. Works with or without flakes. Details

den

The framework. Context-aware configuration system with declarative pipelines, host/user schemas, batteries included. Built on flake-aspects. Details

flake-file

The generator. Define flake inputs as typed Nix module options. Regenerate flake.nix with one command. Details

import-tree

The loader. Recursively import Nix modules from a directory tree. The most widely adopted library in the ecosystem. Details

dendrix

The distribution. Community-driven index of Aspect oriented aspects, layers, import-trees, and templates for quick-start setups. Details

checkmate

The CI toolkit. Bundles treefmt and nix-unit for testing flakes with zero dependencies. Details

with-inputs

The bridge. Flake-compatible inputs resolution for non-flake Nix, follows, overrides, and introspection without flake.nix. Details

denful

The distribution. LazyVim-like facets for common use cases. Pre-configured Aspect oriented modules that just work. Work in progress. Details

dendritic-unflake

The proof. Multiple example setups demonstrating Aspect oriented patterns without flakes, unflake, npins, builtins, froyo, falake. Details

den-diagram

The visualizer. Turn den’s aspect-resolution pipelines into mermaid, dot, and plantuml diagrams via a five-stage graph IR pipeline. Details

Stream-based reactive programming and data transformation for Nix.

ned

FRP kernel. Stream-based functional-reactive programming for Nix, inspired by Cycle.js. The reactive core of den. Details

dnzl

Actor system. Message-passing actors for pure Nix built on ned stream-cycles, pipelines, fan-outs, feedback loops. Details

zen

Module system. A minimal stream-based Nix module system, ~100-line kernel, MLTT-verified, ~26× faster than lib.evalModules. Details

bend

Parser-combinators. Lens-based bidirectional transformation and validation pipelines for Nix. Parse, Don’t Validate. Details

Effect systems and handler libraries across Nix, Rust, and Go.

nfx

Nix effects. Algebraic effects with handlers for Nix, built from four kernel primitives; everything else derives from them. Details

pipe

Monadic pipe. A composable |> for any freer monad, do-style sequencing over Id, Maybe, or your own instance. Details

fx-rs

Rust effects. Ability-style algebraic effects for stable Rust, modeled after Scala’s Kyo and fx.go. Details

fx.go

Go effects. An algebraic effect-handler system for Golang, abilities and handlers with explicit typed capabilities. Details

rust-effects

Type-theoretic effects. Freer-monad effects with FTCQueue and an MLTT dependent type checker for stable Rust. Port of nix-effects. Details

Research into Nix evaluation on interaction-net substrates.

dnx

Rootless runtime. A single Rust binary, reproducible builds without root or a system-wide store, on an optimal Δ-Nets reduction engine. AGPL3. Details

GoDNix

Nix compiler. Translates Nix expressions into Delta Interaction Nets, running on GoDNet. Details

GoDNet

Go reduction engine. A Go implementation of Delta Interaction Nets and compiler backend. Details

ranix

C parser. A Nix language parser in C, built with ragel and bison. Details

CLI tools, test runners, and infrastructure libraries for the Nix ecosystem.

nix-versions

Version finder. Find nixpkgs revisions for historical package versions, and a plain-text tool-version manager for Nix newcomers. Details

nest

Fleet framework. Declarative multi-node NixOS infrastructure with a CSS mental model, traits, selectors, and DOM-based node targeting. Details

fastest

Test runner. Parallel nix-unit compatible test execution via nix-eval-jobs. Extracted from den’s CI. Details

dag

DAG helpers. Home Manager’s directed-acyclic-graph ordering helpers as a zero-dependency standalone library. Details

ntv

Flakes editor. An interactive flakes editor and tool-versioning tool for Nix. Details

Every project in this ecosystem shares the same core principles:

  • Composable, small focused functions that combine naturally
  • No lock in, works with flakes, without flakes, with flake-parts, or standalone
  • Dependency minimal, most libraries have zero or near zero external dependencies
  • Well tested, CI with checkmate, real test suites, real world validation
  • Documented, each library has its own documentation site
Sponsor Development