Skip to content

API Overview

This section is the reference for the @kortexya/nodus package: the top-level exports, the Nodus instance, and every module hanging off an instance. For task-oriented walkthroughs see the guides; this section documents signatures.

@kortexya/nodus is ESM-first and also ships a <script> global build that exposes Nodus. The default export is also Nodus.

import { Nodus } from '@kortexya/nodus';
// or: import Nodus from '@kortexya/nodus';
Export What it is
Nodus (and default) The main class. See The Nodus class.
isWebGpuSupported() Returns whether the current browser exposes WebGPU.
Node, Edge Element wrappers returned by graph queries. See Graph.
NodeList, EdgeList Array-like collections of elements. See Graph.
Transformation A graph transformation. See Utilities.
BoundingBox An axis-aligned bounds value used across the view API.
StyleRule, StyleClass Style primitives. See Styles & rules.
NonObjectPropertyWatcher, ObjectPropertyWatcher Reactive property watchers. See Utilities.
WasmGraphRenderer, WasmRendererAdapter The WebAssembly renderer and its adapter.
Namespace What it is
geometry Pure geometry utilities. See Utilities.
parse Graph-format parsers that return the RawGraph JSON shape. See Utilities.
hypergraph Hypergraph types and utilities. See Hypergraph.
import { geometry, parse, hypergraph } from '@kortexya/nodus';

The everyday layout API is nodus.layouts.*. For advanced use (registering or configuring a layout) the factory functions are exported: forceFactory, forceLinkFactory, gridFactory, hierarchicalFactory, radialFactory, concentricFactory, sequentialFactory.

These functions move compute work to the compiled Rust backend. See Utilities for details.

  • enableWasmBackend()
  • useWasm(subsystem) where subsystem is 'layout' | 'geometry' | 'all'
  • configureBackends(...)

The types Subsystem and Backend are also exported.

Once you have an instance, the API is organized into modules hanging off it. Each links to its reference page.

Module Purpose
nodus.styles Style rules, classes, themes and state styling.
nodus.algorithms Graph algorithms (paths, cycles, MST, traversals).
nodus.layouts Layout runners.
nodus.view Camera, coordinates, fit, size and snapshots.
nodus.events Lifecycle and key events.
nodus.tools Interaction tools (lasso, connect, tooltip, …).
nodus.generate Deterministic graph generators.
nodus.transformations Graph transformations.
nodus.hypergraph Hypergraph pipeline and rendering.
nodus.geo Geometry helpers on the instance.
nodus.layers Render-layer management.
nodus.schema Reactive property watchers.
nodus.keyboard Keyboard input module.
nodus.mouse Mouse input module.
nodus.rules Conditional styling rules (works with nodus.styles).
nodus.export Export the graph or an image.
nodus.debug Debug helpers (see isDebug()).

Graph and selection methods are mixed directly onto the instance — see Graph: nodes & edges.

new Nodus<ND, ED>(params?)

ND and ED are the types of your per-node and per-edge data payloads. The WebAssembly core auto-initializes on import (top-level await), so there is no init function and no Nodus.create() — construction is synchronous. See The Nodus class for the constructor parameters.

Lifecycle methods on the instance:

  • onReady(cb) — run a callback once the instance is ready.
  • reset() — reset the instance.
  • destroy() — tear the instance down and free resources.
  • isDestroyed() — whether destroy() has been called.
  • isDebug() — whether debug mode is on.

nodus.build carries build metadata: { version, commit, buildTime }.

import { Nodus } from '@kortexya/nodus';
const nodus = new Nodus({ container: document.getElementById('graph') });
console.log(nodus.build.version);
nodus.onReady(() => {
// safe to drive the instance
});