apache / apache/arrow-rs

Document arrow-rs architecture and structure

Open
#4,071 5 comments 3 reactions 0 assignees View on GitHub
documentation enhancement
Dominant language
Rust
Stars
3.6k
Forks
1.3k
Avg merge
2d 18h
Merged PRs (30d)
169

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
The underlying implementation of arrow arrays has changed significantly due to the work in https://github.com/apache/arrow-rs/issues/3880

There are now several important classes such as `ScalarBuffer`, `NullBuffer`, `Buffer` `PrimitiveArray`, etc that underlying the arrays in addition to the "classic" `ArrayData`. In addition after https://github.com/apache/arrow-rs/issues/3879 is complete I believe these types will be more publicly exposed through the various Arrow APIs.

**Describe the solution you'd like**
I would like documentation / diagrams / something that briefly explains the key structures ad how they are related to each other.

Perhaps we can take inspiration (or copy/modify) the wonderful guide that @jorgecarleitao wrote for arrow2: https://jorgecarleitao.github.io/arrow2/main/guide/

**Describe alternatives you've considered**

**Additional context**
See details on https://github.com/apache/arrow-rs/pull/4061#issuecomment-1505690831

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the architecture changes from issues 3880 and 3879, the structures named in this issue—ScalarBuffer, NullBuffer, Buffer, PrimitiveArray, and ArrayData—and the discussion in pull request 4061. Compare the arrow2 guide for presentation ideas. Done means the key Arrow array structures and their relationships are explained with documentation or diagrams.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.