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
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. feature New feature labels Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature size:XXL This 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