Projects

HLang

A flow-based programming language for building universal applications by wiring live streams.

HLang treats a program as a graph of nodes rather than glue code. You wire software the way you would wire hardware: snap together Readable, Transform, and Writable nodes, connect an output port to an input port, and let data propagate. Every port is an RxJS Subject — send() pushes, receive() subscribes — so connections stay live: data keeps moving through the graph as long as the sources emit.

The same program, serialized as its IGraph JSON, runs two ways kept deliberately in sync: interpreted in-process (Node and the browser, no code generation) or compiled to a standalone ES module with identical behaviour. HLang depends on no editor — a visual tool only has to emit an IGraph.

  • A layered runtime — runtime (nodes, ports, and flows on RxJS), ir (the IGraph types and the planGraph validation and lowering step), interpreter, and compiler, each building on the one before it.
  • Lumen, a full editor stack — a headless editor core (commands, undo/redo, validation, IGraph serialization), React hooks binding it to React Flow, and a design system whose nodes animate each live signal as data streams through.
  • Batteries included — a deep set of built-in nodes plus browser and desktop clients, with teams building their own editors and platforms on the same runtime.

MIT, seven packages under @hlang-org (mirrored as @hlang-tech). HLang later became the reactive foundation that AStack is built on — the start of one continuous line of work.

hlang.tech

Visit hlang.tech

Comments