geoarrow-c
Python bindings to the geoarrow C and C++ implementation
What it is and what it does
geoarrow-c is a low-level Python binding to the GeoArrow C/C++ library, primarily designed to serve as a dependency for geoarrow-python. It exposes compute kernels and the Arrow C Data interface, allowing direct interaction with geographic data stored in Arrow format. The package provides access to operations like box aggregation and other spatial computations through a C-based implementation.
Most users should use the higher-level geoarrow-python bindings instead. Direct use of geoarrow-c requires manual management of Arrow C Data structures (SchemaHolder, ArrayHolder) and understanding of the Arrow C Data interface. The package has no runtime dependencies and is available as pre-built wheels for common platforms.
Use it for:
- Serve as a compiled dependency for geoarrow-python when native compute performance is needed
- Access low-level GeoArrow compute kernels directly via the Arrow C Data interface for custom spatial operations
- Integrate geographic Arrow data processing into systems that already use PyArrow and need C-level performance
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
geoarrow-c provides low-level Python bindings to the GeoArrow C implementation, exposing compute kernels and the Arrow C Data interface for working with geographic data in Arrow format.
Yes, if you are using geoarrow-python or need direct access to GeoArrow compute kernels via the Arrow C Data interface. No, if you are looking for a high-level geographic data library. The package is stable (active maintenance, no known vulnerabilities, permissive license) but is primarily a low-level dependency rather than a user-facing tool.
Install
geoarrow-c on PyPI
pip
pip install geoarrow-cuv
uv add geoarrow-cpoetry
poetry add geoarrow-cInstalling geoarrow-c
Before you install
Medium install friction due to compiled wheels for multiple platforms. Repository is active with recent commits, though the package is primarily a dependency for higher-level tools rather than a direct user library.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install geoarrow-c
import geoarrow.c
from geoarrow.c import lib
# Use lib.SchemaHolder, lib.ArrayHolder, lib.CKernel to work with Arrow C Data interface
Requires Python 3.8 or later; direct use of compute kernels requires familiarity with the Arrow C Data interface.
Verify before relying
- Whether this package is intended for direct end-user use or exclusively as a transitive dependency
- Performance characteristics or benchmarks for the exposed compute kernels
- Stability guarantees or API compatibility policy across releases
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 308 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 312,587/month — #7,723 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: geoarrow_c-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl; geoarrow_c-0.3.1-cp310-cp310-macosx_11_0_arm64.whl; geoarrow_c-0.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; geoarrow_c-0.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; geoarrow_c-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl; geoarrow_c-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl; geoarrow_c-0.3.1-cp310-cp310-win32.whl; geoarrow_c-0.3.1-cp310-cp310-win_amd64.whl; geoarrow_c-0.3.1-cp310-cp310-win_arm64.whl; geoarrow_c-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl; geoarrow_c-0.3.1-cp311-cp311-macosx_11_0_arm64.whl; geoarrow_c-0.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; geoarrow_c-0.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; geoarrow_c-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl; geoarrow_c-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl; geoarrow_c-0.3.1-cp311-cp311-win32.whl; geoarrow_c-0.3.1-cp311-cp311-win_amd64.whl; geoarrow_c-0.3.1-cp311-cp311-win_arm64.whl; geoarrow_c-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl; geoarrow_c-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
geoarrow-pyarrowProvides Python bindings for the GeoArrow…
permissive · top 15,000 on PyPI
geoarrow-pandasIntegrates GeoArrow geometry data with pandas…
permissive · top 15,000 on PyPI
geoarrow-typesProvides pure Python utilities to manage,…
permissive · top 15,000 on PyPI
vortex-dataVortex-data provides Python bindings to work…
permissive · top 15,000 on PyPI
kernels-datakernels-data provides Python bindings for…
unclear · top 5,000 on PyPI
GeoAlchemy2GeoAlchemy2 extends SQLAlchemy to work with…
permissive · top 5,000 on PyPI
databricks-sql-connectorA Python client library that connects to…
permissive · top 1,000 on PyPI
apache-sedonaPython wrapper for Apache Sedona, a cluster…
permissive · top 5,000 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
arrow-odbcReads data from ODBC data sources directly into…
permissive · top 15,000 on PyPI