Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.15 KB

File metadata and controls

53 lines (40 loc) · 2.15 KB

hg_cpp

A clean-slate, C++-first implementation of the hgraph functional-reactive time-series runtime. The C++ runtime is the source of truth. Python provides wiring compatibility and supports Python-authored nodes running inside that runtime.

Python package

The C++-backed compatibility package is published under the hg_cpp distribution name:

python -m pip install hg_cpp

The distribution exposes the hgraph import package and the native _hgraph extension. Install it in an isolated environment rather than alongside the main hgraph distribution, since both provide the same Python import namespace. One wheel per supported platform covers CPython 3.12 and later through the CPython stable ABI. The supported Python and platform policy is recorded in docs/source/developer_guide/release_readiness.rst.

Build & test

cmake -S . -B build                 # configure (fmt + Catch2 fetched if absent)
cmake --build build -j              # build hgraph_core + tests
ctest --test-dir build --output-on-failure

Requires a C++23 compiler and CMake >= 3.25. Python/nanobind are not needed for the default build (bindings are opt-in via -DHGRAPH_BUILD_PYTHON_BINDINGS=ON).

Documentation

Sphinx docs live under docs/source (uv sync --extra docs, then uv run sphinx-build -W -b html docs/source docs/_build/html):

  • User guide — start at docs/source/user_guide/quick_start.rst, then the authoring/testing guides for nodes, graphs, and the eval_node harness.
  • Developer guide — the authoritative design records (docs/source/developer_guide/): architecture, data structures, wiring, nested graphs, mesh, services, error handling, operators, roadmap.

Contributing / AI sessions

  • AGENTS.md — canonical project direction: goals, build philosophy, source layout, dependency policy, git hygiene.
  • CLAUDE.md — the operational working guide: the enforced design-first workflow (docs change in the same commit as code), guardrails, architecture map, and current state.
  • The read-only ext/main tree is the canonical Python hgraph reference.