keksmd opened a new issue, #953: URL: https://github.com/apache/incubator-graphar/issues/953
## Describe the enhancement requested Add a dependency-light pure-Java storage boundary as the verified Phase 2 prerequisite for the Java reader/writer roadmap. The API isolates URI-backed byte access from GraphAr metadata/layout and from physical formats, so a future Parquet backend can consume files without importing Parquet, Hadoop, Arrow, or object-store dependencies into `graphar-info`. Component(s): Java ## Scope - `graphar-storage-api`: `Storage`, `InputFile`, `OutputFile`, `SeekableInput`, and `PositionOutput` contracts; - `graphar-storage-local`: `file:` URI implementation with seek, bounded reads, create-vs-overwrite semantics, and byte positions; - tests for heap/direct `ByteBuffer`, seek/readFully, overwrite safety, and unsupported URI rejection. ## Non-goals No GraphAr layout resolution, metadata change, Parquet/ORC decoder, Hadoop/S3 adapter, Arrow public type, predicate/query API, reader, or writer. ## Compatibility and acceptance The API must remain Java 11-compatible and add no runtime dependency to `graphar-info`. A local adapter must preserve byte content and positions, reject non-file URIs explicitly, and pass repository pre-commit plus the storage reactor's devcontainer `clean verify`. ## Dependencies and evidence Relates to reader/writer umbrella #947 and architecture umbrella #756. Product-fork evidence is keksmd/incubator-graphar#3: `pre-commit run --files` passed and the declared devcontainer produced storage API/local artifacts with 7/7 JUnit tests. This issue is opened before any Apache code PR; no upstream implementation is proposed yet. -- 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]
