apache/arrow
By the numbers
A quantitative snapshot of the apache/arrow monorepo.
Data collected on 2026-04-30 against commit 9abd6d3285 on the main branch.
Size
The repo contains code in roughly a dozen languages. The C++ core is by far the largest piece by file count, with PyArrow (Python + Cython) and the R bindings as the next two distinct codebases.
xychart-beta horizontal
title "Source files by extension (cpp/, python/, r/, ruby/, c_glib/, matlab/)"
x-axis ["fbs", "proto", "c", "pyx", "pxd", "hpp", "cpp", "py", "R", "m", "rb", "h", "cc"]
y-axis "Files" 0 --> 1100
bar [1, 3, 23, 26, 29, 79, 110, 134, 179, 273, 771, 950, 1073]| Top-level directory | Files |
|---|---|
cpp/ |
2,092 |
c_glib/ |
607 |
ruby/ |
544 |
r/ |
469 |
matlab/ |
381 |
dev/ |
348 |
docs/ |
300 |
python/ |
293 |
ci/ |
142 |
.github/ |
42 |
format/ |
9 |
The C++ core in cpp/src/arrow/ alone holds more than 1,000 .cc files. The largest single source files are SIMD-bitpacking kernels generated by Python codegen scripts (cpp/src/arrow/util/bpacking_simd512_generated_internal.h is over 11,000 lines) and the substrait round-trip test suite (cpp/src/arrow/engine/substrait/serde_test.cc, ~6,300 lines).
Activity
| Metric | Value |
|---|---|
| First commit | 2016-02-05 |
| Total commits | 18,792 |
| Unique committers | 1,477 |
| Latest tagged release | apache-arrow-24.0.0 (2026-04-14) |
| Active development branch tag | apache-arrow-25.0.0.dev (2026-04-21) |
The most active subsystems by commit count over the last year mirror what you'd expect from a mature data infrastructure project:
cpp/src/parquet/— 38 commits from Antoine Pitrou is the largest single contribution; storage format work continues to be heavy.cpp/src/arrow/compute/— incremental kernel work (Rossi Sun, Antoine Pitrou, Hyukjin Kwon).python/pyarrow/— Hyukjin Kwon and Raúl Cumplido drive build/release plumbing as well as feature work.r/R/— Nic Crane is the primary maintainer of the dplyr backend.c_glib/— Sten Larsson and Sutou Kouhei maintain the GObject bindings.ruby/— Sutou Kouhei is the dominant contributor (73 commits in the last year).
Bot-attributed commits
| Type | Count |
|---|---|
Commits authored by *[bot] accounts (e.g. dependabot[bot]) |
545 |
Commits with a Co-authored-by: *[bot] trailer |
36 |
| Total commits | 18,792 |
This is a lower bound on automated work. Bot-authored commits are dominated by dependabot[bot] dependency bumps. Inline AI assistants and editor-based code completion leave no trace in git history.
Complexity
Code that grew especially large lives in three buckets:
- Generated code. SIMD bit-packing kernels (
cpp/src/arrow/util/bpacking_simd512_generated_internal.h,bpacking_scalar_generated_internal.h) and Thrift-derived Parquet types (cpp/src/generated/parquet_types.h) account for the longest files in the repo. - Test suites.
cpp/src/arrow/engine/substrait/serde_test.cc,cpp/src/parquet/arrow/arrow_reader_writer_test.cc,cpp/src/arrow/acero/hash_aggregate_test.cc, andcpp/src/arrow/c/bridge_test.ccare each thousands of lines. Test density is high, especially around hot-paths like Parquet round-tripping, the C data interface bridge, and the hash aggregate node. - Single-file subsystems. A handful of subsystems concentrate logic into very large
.ccfiles:cpp/src/arrow/filesystem/azurefs.cc(152 KB),137 KB),cpp/src/arrow/filesystem/s3fs.cc(cpp/src/arrow/acero/swiss_join.cc(122 KB),149 KB), andcpp/src/arrow/acero/tpch_node.cc(cpp/src/parquet/column_writer.cc(~114 KB).
TODO debt
A grep for TODO, FIXME, and HACK finds 426 markers in cpp/src/ and 608 across cpp/, python/, and r/ combined. The R package's query-engine.R and expression.R each carry 6 markers, the highest single-file count on the R side. See Cleanup opportunities (not separately enumerated in this wiki) for where the maintenance work hides.
Test-to-code ratio (C++ core)
The C++ source tree distinguishes test files by the _test.cc suffix. Every major subsystem has a paired test file (array_test.cc, record_batch_test.cc, expression_test.cc, etc.), and many tests are larger than the production code they cover (array_test.cc is 4,400+ lines, larger than its own header).
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.