nil-xit

A lightweight distributed reactive runtime for shared state synchronization, live instrumentation, and multi-client visualization.


Core idea

nil-xit separates execution, state, and frontend rendering.


System model

Frames (primary runtime unit)

Frames are stateful runtime objects and the only distributed unit in nil-xit.

A Frame encapsulates:

Frame primitives

Signals are internal event channels.

Values are externally accessible reactive state objects exposed via handles.


Runtime Flow

image

  1. User constructs nil-service (transport backend)
  2. User constructs nil-xit with nil-service injected
  3. User defines Frames via nil-xit, including their signals and values
  4. User starts nil-service event loop
  5. One or more frontends connect and synchronize state
  6. Signals flow into frames from frontends
  7. Frame values are synchronized back to all frontends

Key properties


What you can build

๐Ÿงช Test instrumentation

Wrap test frameworks (e.g. gtest) so each test emits observable frames for live visualization.

๐Ÿ““ Notebook integration

Attach Jupyter notebooks to a running runtime and visualize state in real time.

๐Ÿ“Š Multi-client dashboards

Multiple independent UIs can observe and interact with the same execution.


Supported languages

Frontend is language-agnostic as long as it can communicate with nil-service.

Current reference frontend:


Status


Examples


Repositories


Miscellaneous Repositories