apache/arrow
Implementations
This repository hosts six language implementations of Apache Arrow that share a single C++ core. PyArrow, the R arrow package, the Ruby red-arrow gems, the C-GLib bindings, and the MATLAB bindings all build on top of libarrow.so (and its sister libraries libparquet, libgandiva, libarrow-flight, libarrow-dataset).
Independent implementations of the format spec live in separate repos and are not covered here:
Cross-language compatibility is verified by the integration test suite (see Testing).
Pages in this section
- C++ — the core library at
cpp/src/arrow/. Everything else builds on this. - Python (PyArrow) — Cython bindings in
python/pyarrow/. - R — R6 + cpp11 bindings in
r/, with a dplyr backend. - Ruby (Red Arrow) — Ruby gems in
ruby/built on C-GLib. - C-GLib — GObject wrappers in
c_glib/. - MATLAB — MATLAB classes in
matlab/.
How they relate
graph TB
Cpp["C++ libarrow / libparquet / libgandiva (cpp/src)"]
PyArrow["PyArrow (python/pyarrow)"] --> Cpp
Rpkg["R arrow (r/)"] --> Cpp
CGlib["C-GLib (c_glib/)"] --> Cpp
Matlab["MATLAB (matlab/)"] --> Cpp
Ruby["Red Arrow (ruby/)"] --> CGlibThe C++ library is the only implementation that talks directly to the format. Every other wrapper goes through it. The C-GLib layer also serves as a foundation for any GObject-introspection-aware language: Vala, Lua, Crystal, etc., can in principle use it without writing C++ code.
Per-implementation maintainers
| Implementation | Active maintainers |
|---|---|
| C++ | Antoine Pitrou, Rossi Sun, Sutou Kouhei, Felipe Aramburu |
| PyArrow | Hyukjin Kwon, Raúl Cumplido, Rok Mihevc, Antoine Pitrou |
| R | Nic Crane, Hyukjin Kwon, Bryce Mecum |
| C-GLib | Sten Larsson, Sutou Kouhei, Hiroyuki Sato |
| Ruby | Sutou Kouhei |
| MATLAB | Kevin Gurney, Sarah Gilmore (community) |
These reflect the most active contributors over the last year derived from git log. CODEOWNERS-style assignments are not used by Arrow; bus factor is managed informally per subsystem.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.