skip to content

gen-view

Every derived view is a named materialized query result over the selector algebra. gen-view is that constructor: registry, topology, channel, role, and the aspect/entity classification are one construction under different names, not five separate mechanisms that happen to look alike.

The problem it owns: a framework wants named, queryable views over a graph — “everything with this role,” “the topology reachable from here” — and without gen-view, each of those becomes its own bespoke query. gen-view’s raw calculus is a deliberate narrowing of a published scope-graph formalism, so the constructor stays small while the views it produces stay expressive.

It depends on gen-graph and gen-prelude. One roster member builds on it: gen-link, which threads gen-view’s constructs into cross-flake federation.

{
inputs.gen-view.url = "github:sini/gen-view";
outputs = { gen-view, ... }:
let view = gen-view.lib;
in { /* ... */ };
}
graph = view.compositions.movement {
channel = "settings";
relation = "import";
root = "leaf";
direction = "outbound";
};
palette
dark
light
↑↓ select apply esc close

Palettes adapted from Catppuccin (Macchiato) (MIT), Tokyo Night (Apache-2.0), gruvbox (MIT), Catppuccin (Latte) (MIT), Rosé Pine (Dawn) (MIT).