Expand description
High-performance graph traversal.
rxgraph provides fast topology queries, stateful path search, and explicit
construction APIs for graphs stored in columnar tables.
§Architecture
Internally, rxgraph stores node and edge tables as Arrow
RecordBatch values, validates graph
identity columns once, and builds compact CSR topology for traversal. The
graph schema is deliberately small:
- nodes require
id - edges require
id,src, anddest - all identity columns must be either
UInt64or string - optional
typecolumns must be string
Use Graph::new to build a graph, TraversalConfigBuilder plus
DslKernel for stateful path search, and the convenience methods on
Graph for simple BFS/DFS, shortest path, degree, and component queries.
Traversal evaluates a DslKernel against every candidate edge. The kernel
decides whether the edge is accepted, how named path state changes, and
whether the accepted path should be returned. Search uses compact internal
IDs and materializes external GraphId values only in returned results.
Re-exports§
pub use dsl::DslExpr;pub use dsl::DslKernel;pub use dsl::Scalar;pub use dsl::StateRow;pub use dsl::Value;pub use graph::EdgeId;pub use graph::Graph;pub use graph::GraphId;pub use graph::GraphRepo;pub use graph::NodeId;pub use graph::OwnedGraphId;pub use traversal::ArrowList;pub use traversal::ArrowRow;pub use traversal::ArrowStruct;pub use traversal::BoxedRun;pub use traversal::EdgeCtx;pub use traversal::GraphPath;pub use traversal::Kernel;pub use traversal::KernelEntry;pub use traversal::OwnedGraphPath;pub use traversal::OwnedSearchResult;pub use traversal::ParquetPaths;pub use traversal::PayloadField;pub use traversal::RunKernel;pub use traversal::RunOptions;pub use traversal::SearchResult;pub use traversal::SearchStats;pub use traversal::TraversalConfig;pub use traversal::TraversalConfigBuilder;pub use traversal::TraversalStrategy;pub use traversal::TypedKernel;pub use traversal::TypedKernelEntry;pub use traversal::TypedPayloadCache;pub use traversal::boxed_run;pub use traversal::boxed_typed_run;pub use traversal::build_kernel;pub use traversal::build_typed_kernel;pub use traversal::register_kernel;pub use traversal::search_native;pub use traversal::try_build_kernel;pub use traversal::try_build_typed_kernel;pub use traversal::inventory;