KHARSHAVARDHAN-eng opened a new pull request, #359:
URL: https://github.com/apache/hugegraph-computer/pull/359
### 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
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]