Open-Source Wikis

/

Apache Arrow

/

By the numbers

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, and cpp/src/arrow/c/bridge_test.cc are 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 .cc files: cpp/src/arrow/filesystem/azurefs.cc (152 KB), cpp/src/arrow/filesystem/s3fs.cc (137 KB), cpp/src/arrow/acero/swiss_join.cc (122 KB), cpp/src/arrow/acero/tpch_node.cc (149 KB), and 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.

By the numbers – Apache Arrow wiki | Factory