You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@graphar.apache.org by "GTrunSec (via GitHub)" <gi...@apache.org> on 2026/09/16 16:50:18 UTC

[PR] feat(rust): expose edge builder API [incubator-graphar]

GTrunSec opened a new pull request, #977:
URL: https://github.com/apache/incubator-graphar/pull/977

   ### Reason for this PR
   
   Closes #976.
   
   The in-tree Rust binding exposes vertex data builders and edge metadata, but it cannot write edge data even though the C++ implementation already owns `graphar::builder::Edge` and `EdgesBuilder`. Rust consumers therefore cannot stay on the upstream GraphAr writer path for graph-shaped data.
   
   ### What changes are included in this PR?
   
   - expose safe Rust `Edge` and `EdgesBuilder` wrappers over the existing C++ implementation;
   - support endpoint inspection and bool/i32/i64/f32/f64/string edge properties;
   - reject negative internal vertex IDs and unavailable adjacency layouts;
   - use upstream strong schema validation for every added edge;
   - propagate Arrow include paths returned by pkg-config into the CXX bridge;
   - retain the original pkg-config error in build failures for actionable diagnostics.
   
   No GraphAr encoding, metadata format, or chunk layout is reimplemented in Rust.
   
   ### Are these changes tested?
   
   Yes. New tests cover endpoint/property access, negative IDs, successful upstream chunk writing, unavailable adjacency layouts, and strong schema rejection. Locally:
   
   - `cargo test`: 58 passed;
   - `cargo clippy --tests --no-deps -- -D warnings`: passed;
   - `cargo test --doc`: passed;
   - `cargo doc --lib --no-deps`: passed;
   - `cargo fmt --all -- --check`: passed.
   
   ### Are there any user-facing changes?
   
   Yes. Rust users gain public `graphar_rs::builder::{Edge, EdgesBuilder}` APIs. Existing APIs are unchanged.
   
   ## Checklist
   
   - [x] I have performed a self-review of my own code.
   - [x] I have formatted my own code using `make cpplint` before submitting when changed files are in the `cpp` directory. (No files under `cpp/` changed.)
   - [x] I have performed `pre-commit run` on the changed files before submission; the Rust format gate was also run directly through the project Cargo environment.
   - [x] I have added tests to prove my changes are effective.
   


-- 
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: commits-unsubscribe@graphar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@graphar.apache.org
For additional commands, e-mail: commits-help@graphar.apache.org


Re: [PR] feat(rust): expose edge builder API [incubator-graphar]

Posted by "GTrunSec (via GitHub)" <gi...@apache.org>.
GTrunSec closed pull request #977: feat(rust): expose edge builder API
URL: https://github.com/apache/incubator-graphar/pull/977


-- 
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: commits-unsubscribe@graphar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@graphar.apache.org
For additional commands, e-mail: commits-help@graphar.apache.org