Skip to main content

Crate rxgraph

Crate rxgraph 

Source
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, and dest
  • all identity columns must be either UInt64 or string
  • optional type columns 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;

Modules§

dsl
Traversal expression DSL.
examples
Example native Kernel implementations.
graph
traversal
Path traversal over a Graph.