jellyflow-core 0.2.0

Headless graph model, IDs, type descriptors, and interaction policy primitives for Jellyflow.
Documentation

jellyflow-core

jellyflow-core contains the portable graph document model for Jellyflow:

  • stable graph, node, port, edge, symbol, group, and sticky-note IDs;
  • serializable node graph data structures;
  • first-class binding records for graph-local objects and opaque host-owned source anchors;
  • type descriptors and compatibility checks;
  • interaction-policy value types;
  • undoable graph operations, transactions, fragments, and history.

The crate is headless by contract. It must not depend on Fret, GPU, renderer, platform, or windowing crates.

use jellyflow_core::{Graph, GraphId, NodeId};

let graph = Graph::new(GraphId::new());
let node_id = NodeId::new();

assert!(!graph.nodes.contains_key(&node_id));

Bindings are portable document data. Jellyflow validates graph-local binding targets such as nodes, ports, edges, groups, and sticky notes, while source anchors keep host-owned payloads opaque so adapters can store PDF coordinates, text ranges, image regions, or annotation identifiers without pulling source parsers into jellyflow-core.