apache / apache/incubator-graphar
[C++] [Improvement] Provide more writing methods in the C++ library
- Dominant language
- C++
- Stars
- 373
- Forks
- 93
- Avg merge
- 7d 21h
- Merged PRs (30d)
- 7
Description
**Is your feature request related to a problem? Please describe.**
Currently, the low-level writers (`VertexPropertyWriter` and` EdgeChunkWriter`) only support to write Arrow tables, thus for the users, it is required to construct such tables before writing (e.g., writing the PageRank results saved in a std::vector into GAR files). For high-level writers (`VerticesBuilder` and `EdgesBuilder`), it is required to construct the `Vertex`/`Edge` firstly, which is the internal high-level data structure in GraphAr
**Describe the solution you'd like**
We are proposed to provide more built-in writing methods in C++ Writer SDK, to support additional data structures besides Arrow tables and GraphAr `Vertex`/`Edge`. A possible solution is to use containers from the STL, as [Boost Graph Library](https://cs.brown.edu/~jwicks/boost/libs/graph/doc/using_adjacency_list.html#sec:adjacency-list-properties) does, including:
- std::vector
- std::list
- std::slist
- std::set
- std::hash_set
- std::multiset
Contributor guide
Research direction
Start by locating the C++ Writer SDK entry points for VertexPropertyWriter, EdgeChunkWriter, VerticesBuilder, and EdgesBuilder, then compare their current Arrow-table and Vertex/Edge inputs with the Boost Graph Library container approach linked in the issue. Define the supported STL containers and the behavior that would demonstrate the feature is complete; the issue does not name tests or files to run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100