apache / apache/incubator-graphar

[FEATURE][Java] Pure-Java GraphAr reader/writer implementation

Open
#947 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
373
Forks
93
Avg merge
7d 21h
Merged PRs (30d)
7

Description

## Describe the enhancement requested

Track the production-driven pure-Java data-access implementation as one umbrella. The product fork develops it immediately and independently; this Apache issue organizes only the small upstreamable slices.

Component(s): Java

## Proposed layering

`graphar-info` -> storage API -> IO request/capability API -> Parquet backend -> GraphAr chunk/layout reader -> ordered-by-source `neighbors` and `scanEdges` -> writer/validator.

## Non-goals for the first vertical

No JNI/FastFFI, mandatory Arrow representation, general query AST, Gremlin, graph algorithms, ORC/CSV, unordered layouts, cloud storage, or integrations.

## Acceptance for the first vertical

A Java reader resolves `vertexId -> offsets -> minimum Parquet range -> destinations` for `ordered_by_source`, exposes streaming edge scans, and preserves the dependency boundary. Writer, other layouts, and adapters are separate small PRs after the reader is proven.

## Links

Architecture umbrella: #756. Compatibility/TCK umbrella: #944. Open a storage, IO, Parquet, reader, or writer subissue only when its independently verified fork slice is ready to be proposed upstream.

Contributor guide

Open the contributing guide

Research direction

Start by reading the architecture umbrella in #756 and the compatibility/TCK umbrella in #944, then review the proposed layers from graphar-info through the Parquet backend and ordered_by_source reader. No file, test, or entry point is named; done means a separately verified slice can resolve vertex IDs to destinations, stream edge scans, and preserve the dependency boundary.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.