Graphene is a small Racket library implementing hierarchical dataflow programming, similar to a spreadsheet where cells automatically update when dependencies change. Built in under 500 lines, it tracks forward, inverse, and upstream dependency relationships between datums. Key features include topologically sorted change propagation to avoid redundant re-evaluations, hierarchical subgraphs with explicit input/output boundaries for information hiding, and correct-by-construction graph state. The post also compares Graphene to Antimony, noting improvements like eliminating the node/subgraph distinction and preventing duplicate identifiers.
Sort: