Skip to content

feat(rust): establish Rust graph computing modernization framework (#355) - #359

Open
KHARSHAVARDHAN-eng wants to merge 1 commit into
apache:masterfrom
KHARSHAVARDHAN-eng:feature/rust-modernization-roadmap-355
Open

feat(rust): establish Rust graph computing modernization framework (#355)#359
KHARSHAVARDHAN-eng wants to merge 1 commit into
apache:masterfrom
KHARSHAVARDHAN-eng:feature/rust-modernization-roadmap-355

Conversation

@KHARSHAVARDHAN-eng

Copy link
Copy Markdown

Description

This PR implements the initial Rust modernization baseline and proof-of-concept framework for HugeGraph Computer and Vermeer as outlined in parent roadmap issue #355.

Key Changes

  1. Core Rust Kernel (computer-rust):
    • CSRGraph: High-performance Compressed Sparse Row / Column memory-efficient graph representation.
    • PageRankKernel & SsspKernel: Vectorized, parallelized PageRank and Single Source Shortest Path computing kernels.
    • AtomicAggregator: Lock-free thread-safe aggregators for superstep reductions.
    • C-ABI FFI Layer: Exported functions in computer_rust_c_api.h and src/ffi/c_api.rs for JNI (Java) and CGO/gRPC (Go) interoperability.
  2. Correctness Fixtures & Baseline Tolerances:
    • Datasets: Standard Karate Club dataset fixture and synthetic power-law graph generator.
    • Differential Tolerance: $L_1$-distance and epsilon floating-point parity assertion suite against ground-truth baselines.
    • Benchmarks: Criterion harness (benches/kernel_bench.rs) for measuring iteration speed and memory scaling.
  3. Integration Adapters:
    • Java (computer-core): RustKernelBridge.java with graceful fallback to pure Java Computation execution if native library is absent.
    • Go (vermeer): rust_bridge.go in apps/compute with fallback execution.
  4. CI & Documentation:
    • .github/workflows/rust-ci.yml: Automated cargo fmt, clippy, cargo test, and release build validation.
    • docs/rust-modernization-roadmap.md: Comprehensive architecture overview, baseline principles, safety guardrails, and newcomer-friendly child issue breakdowns.

Reference

Fixes#355

…pache#355)
- Create computer-rust crate with high-performance CSR graph representation, PageRank, SSSP, and atomic aggregator kernels
- Implement C-ABI export layer (computer_rust_c_api.h) for FFI interoperability
- Add dataset fixtures (Karate Club, synthetic power-law) and differential tolerance check suite
- Add Java RustKernelBridge in computer-core with graceful fallback logic and unit tests
- Add Go RustKernelBridge in vermeer with fallback execution and unit tests
- Create .github/workflows/rust-ci.yml for Rust linting, testing, and formatting
- Add docs/rust-modernization-roadmap.md detailing architecture, guardrails, baselines, and newcomer-friendly child tasks
@dosubotdosubotBot added size:XXL This PR changes 1000+ lines, ignoring generated files. feature New feature labels Aug 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featureNew featuresize:XXLThis PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Roadmap] Incremental Rust modernization for graph computing

1 participant

@KHARSHAVARDHAN-eng