PyArrow

Python bindings for Apache Arrow's columnar in-memory format, giving pandas, NumPy, and data pipelines a fast, zero-copy way to move and process tabular data.

Library
PyPI
v25.0.1
17,087stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
95/100Excellent
Development Activity100
Maintenance84
Community96
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
87/100Excellent
Architecture87
Code Quality90
Innovation82
Learning Curve90

PyArrow is the official Python implementation of Apache Arrow, a language-independent columnar memory format built for fast analytics and zero-copy data interchange. It wraps the project’s C++ core in a Cython layer, exposing Arrow’s Table, Array, ChunkedArray, and RecordBatch primitives directly to Python while keeping the heavy numerical work in native code.

Beyond in-memory representation, pyarrow bundles readers and writers for Parquet, ORC, CSV, and Feather/IPC, a compute module of vectorized kernels, a Dataset API for scanning partitioned files on local or cloud filesystems, Arrow Flight RPC for streaming data over the network, and interoperability layers for pandas, NumPy, and the C Data Interface/DLPack standards used by other Arrow-aware tools.

What You Get

  • Columnar Array/Table/ChunkedArray/RecordBatch types backed by the Arrow C++ memory model
  • File format I/O for Parquet, ORC, CSV, JSON, and the Arrow IPC/Feather formats
  • A vectorized pyarrow.compute kernel library for filtering, aggregation, and string/temporal operations
  • A pyarrow.dataset API for scanning partitioned datasets across local disk, S3, GCS, Azure, and HDFS
  • Zero-copy interop with pandas, NumPy, and any library implementing the Arrow C Data Interface or DLPack
  • Arrow Flight RPC client/server support for streaming Arrow data over the network

Common Use Cases

  • Loading and writing large Parquet datasets faster and with lower memory overhead than pandas alone
  • Passing columnar data between Python, R, Java, and C++ processes without serialization overhead
  • Building data pipelines that filter and aggregate with pyarrow.compute before or instead of pandas
  • Reading partitioned data lakes (Hive-style directories on S3/GCS) via the Dataset API
  • Bridging data between DuckDB, Polars, pandas, and ML frameworks through the shared Arrow format

Under The Hood

Architecture pyarrow wraps the Arrow C++ engine via a Cython bridge layer (lib.pyx/lib.pxd, table.pxi, array.pxi) that exposes cdef classes wrapping shared_ptr<CTable>/CArray/CChunkedArray objects declared in includes/libarrow.pxd; higher-level Python modules (dataset.py, compute.py, csv.py, the parquet/ package) sit on top of these primitives and delegate to native kernels, so nearly all data movement and computation happens in C++ while Python mostly marshals calls and metadata — changing a core abstraction like Table requires touching both the Cython .pxi/.pyx layer and its C++ counterpart in the sibling cpp/ tree.

Tech Stack Built with scikit-build-core, CMake, and Cython >=3.1 as declared in pyproject.toml, targeting the Arrow C++ libraries (libarrow, libarrow_dataset, libarrow_flight, libparquet, libgandiva) with NumPy as the primary Python-side runtime dependency and optional pandas for interop; requires Python >=3.11, builds cross-platform wheels via a dedicated CI workflow, and exposes optional bindings for GLib, Flight, Gandiva, and Substrait behind separate extension modules.

Code Quality Extensive test coverage lives under pyarrow/tests (dozens of modules spanning arrays, compute, datasets, Parquet/ORC, Flight, CUDA, and Cython-extension interop), run with pytest and supplemented by hypothesis-based property tests; C++ Status codes are translated into a typed Python exception hierarchy (ArrowInvalid, ArrowTypeError, ArrowKeyError, and friends in error.pxi) rather than being swallowed, docstrings embed runnable doctest examples validated via numpydoc, and CI builds and tests across multiple Python versions and operating systems.

API Design The public API favors pandas-like ergonomics (pa.table(), pa.array(), .to_pandas()) while keeping columnar/chunked internals explicit through distinctly named types, so zero-copy behavior is opted into rather than hidden; construction functions follow a consistent per-format naming scheme (read_csv/write_csv, read_parquet/write_parquet) and compute kernels are exposed as both free functions and array/table methods, keeping the common “read format, compute, write format” path low on boilerplate, though the still-evolving separate type-stub package means static typing support lags the runtime API.

Used by 26 apps in this directory

Python
98%
MIT

Agent Lightning

AI Development

18,000

A Microsoft-built training framework that optimizes AI agents with reinforcement learning, automatic prompt optimization, or supervised fine-tuning — with near-zero code changes to your existing agent, in any framework.

View details
83
Repo Health
68
Technical
70
Dependency
Built with
Python98%
Updated 5 days ago
TypeScript
60%
Other

agenta

Developer Tools · Devops · AI Development

4,706

The open-source LLMOps platform unifying prompt engineering, evaluation, and observability for teams building reliable LLM applications.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
TypeScript60%
Python38%
Updated yesterday
Python
50%
Other

Airbyte

Developer Tools · Data Engineering

21,998

Open-source ELT platform with 600+ connectors for moving data from any source to warehouses, lakes, and AI agents.

View details
95
Repo Health
80
Technical
66
Dependency
Built with
Python50%
Kotlin41%
Updated today
Python
90%
Apache 2.0

Apache Airflow

Data Engineering

46,755

Define, schedule, and monitor complex data workflows as Python code — with a powerful UI, 80+ provider integrations, and battle-tested scalability across thousands of production deployments.

View details
96
Repo Health
89
Technical
64
Dependency
Built with
Python90%
Updated yesterday
Python
91%
Apache 2.0

ART

AI Development

10,703

Give your LLM agents on-the-job training—ART lets you apply GRPO reinforcement learning to any multi-step agentic workflow with minimal code changes.

View details
84
Repo Health
82
Technical
73
Dependency
Built with
Python91%
Updated 2 days ago
Python
67%
Other

AutoGPT

Automation · Productivity · AI Assistants

187,177

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
66
Dependency
Built with
Python67%
TypeScript32%
Updated today
Python
83%
MIT

autoresearch

AI Agents · AI Development

95,323

Give an AI agent a real LLM training setup and let it experiment autonomously overnight — you wake up to a log of experiments and (hopefully) a better model.

View details
35
Repo Health
77
Technical
80
Dependency
Built with
Python83%
Jupyter Notebook17%
Updated 5 months ago
C++
68%
Apache 2.0

ClickHouse

Databases · Analytics · Data Engineering

49,673

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
68
Dependency
Built with
C++68%
Python13%
Updated today
Rust
52%
Apache 2.0

cocoindex

Data Engineering · AI Development

11,496

An incremental data indexing engine that keeps AI agent context perpetually fresh by reprocessing only what changed.

View details
86
Repo Health
85
Technical
64
Dependency
Built with
Rust52%
Python48%
Updated 2 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search