Skip to content

Overview

Transpose

Generic 2-level attribute set transposition: { a.b = v }{ b.a = v }. Parameterized by an emit hook. Learn More

Aspects & Resolution

Aspect submodules with includes (dependency graph) and per-class configs. Recursive resolution collects all transitive class-specific modules. Learn More

Providers & Fixpoint

Nested sub-aspects via provides / _. Fixpoint semantics let providers reference siblings and top-level aspects. Learn More

With flake-parts

The flakeModule wires flake.aspectsflake.modules automatically. Minimal setup. Learn More

Without Flakes

Use new-scope with lib.evalModules for isolated namespaces. No flake-parts dependency needed. Learn More

Cross-Aspect Dependencies

includes forms a DAG. Only classes present on the included aspect propagate during resolution. Learn More

Parametric Aspects

Curried providers with arguments at inclusion time. Works at both provides and top levels. Learn More

__functor Override

Intercept inclusion. Dispatch different configs based on class and aspect-chain context. Learn More

Forward Across Classes

Route resolved modules from one class into a submodule path of another class. Learn More

API

Full export table: transpose, types, aspects, new, new-scope, forward. Learn More

Type System

aspectsType, aspectSubmodule, providerType — the Nix option types that validate aspect definitions. Learn More

Test Suite

16 test files covering every feature. How to run and read them. Learn More

Contribute Community Sponsor