Hello GAR Community!

I hope this email finds you well.

I am Zeki (Zeyu Liu), a developer interested in building Go support for GraphAr.

Following the discussion in [#540 
[1]](https://github.com/apache/incubator-graphar/discussions/540) and [#828 
[2]](https://github.com/apache/incubator-graphar/issues/828), I would like to 
propose a phased approach for the Go SDK.

Initially, I plan to implement the info package natively in Go, drawing 
inspiration from the java-info implementation and other language SDKs' best 
practices to ensure ease of use and maintainability.

For the write path, I suggest leveraging CGO (the mechanism for calling C/C++ 
from Go) to call the core capabilities of the existing C++ library to ensure 
functional alignment.

In the future, we can consider native Go implementations for high-frequency 
community requirements as needed.

My initial roadmap is focused on:

Part 1: Implement the info package and support for the local filesystem.

Part 2: Introduce storage abstraction (e.g., S3) after the core logic is stable.

I have submitted a minimal PR [#829 
[3]](https://github.com/apache/incubator-graphar/pull/829), which includes a 
placeholder Go module and a basic CI workflow to bootstrap the project.

I would appreciate your feedback on this hybrid approach (Native + CGO) and the 
project structure.

Best regards,
Zeki (Zeyu Liu)

---

References:
[1] https://github.com/apache/incubator-graphar/discussions/540
[2] https://github.com/apache/incubator-graphar/issues/828
[3] https://github.com/apache/incubator-graphar/pull/829

Reply via email to