|
VeloGraphX
High-performance dynamic graph analytics in C++20
|
VeloGraphX is a C++20 graph analytics library for dynamic and evolving graphs, with Python bindings for users who want native graph-processing performance from Python workflows.
The library combines mutable graph storage, maintained graph algorithms, multicore execution support, reproducible benchmarking, and explicit algorithm-specific correctness contracts.
The native implementation is written in modern C++20. Public headers cover graph storage, incremental analytics, runtime scheduling, partitioning, compression-related support, and other engine components.
Maintained analytics include exact BFS/unweighted SSSP, exact connected components, exact triangle counting, exact k-core maintenance, exact weighted shortest-path distances with conservative recomputation fallback, and PageRank-related maintenance with residual/tolerance validation.
VeloGraphX is designed for graphs that change over time. Its dynamic storage layer allows repeated update batches without requiring a complete canonical CSR rebuild after every change.
For BFS, the research system keeps localized exact repair and exact full recomputation available as competing execution plans. A pre-repair selector can choose between them based on graph/update structure and observed execution cost.
This makes VeloGraphX useful for developers studying incremental graph algorithms as well as for systems researchers evaluating when maintenance should replace or complement recomputation.
The Python package exposes the native engine through pybind11. Install it from PyPI with:
Python users can construct graphs, apply update batches, run maintained analytics, and interoperate with common scientific Python data structures while the core graph processing remains native.
VeloGraphX is both a software library and a reproducible graph-systems research artifact. The repository contains tests, sanitizers, benchmark harnesses, pinned external-comparison contracts, raw retained evidence, machine-readable result registries, and a Zenodo-archived submission artifact.
The project deliberately avoids claiming universal superiority. Its documentation retains workloads where another system, full recomputation, or the oracle plan performs better.
For C++ development, clone the repository and build with CMake:
For Python, install the velographx package and follow the examples in the repository's Python guide.