pyo3-arrow
Arrow integration for pyo3.
0.19.0
7.1M downloads/mo
#3745 most downloaded on crates.io
kylebarron/arro3
What this package is like to depend on
Last release 2 months ago
15 Jun 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 25 of 25 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
26 releases · first in 2024
9 releases in the last 12 months
see the full history below
Release timeline
26 releases · Jun 2024 to Jun 2026Releases
latest 26-
0.19.015 Jun 2026 -
0.18.009 Jun 2026Release notes
Open source →pyo3-arrow is not part of the workspace, so we can't use
-p, which stands forpackageI think -
0.17.025 Feb 2026 -
0.16.125 Feb 2026 -
0.16.009 Feb 2026 -
0.15.023 Oct 2025 -
0.14.023 Oct 2025 -
0.13.023 Oct 2025 -
0.12.002 Sep 2025Release notes
Open source →Breaking :wrench:
- Rename
to_pyarrowtointo_pyarrowbecause it consumes self. #391 - Support pyo3 0.26 by @kylebarron in https://github.com/kylebarron/arro3/pull/391
New Features :sparkles:
- Add
export::Arro3ArrayReaderby @kylebarron in https://github.com/kylebarron/arro3/pull/354
Bug Fixes :bug:
- fix(pyo3-arrow, arro3-core): Preserve exceptions when Arrow dunder method fails by @kylebarron in https://github.com/kylebarron/arro3/pull/374
Documentation :book:
- Add badges for pyo3-arrow by @kylebarron in https://github.com/kylebarron/arro3/pull/371
Other
- chore(pyo3-arrow): Fix clippy warnings in pyo3-arrow by @kylebarron in https://github.com/kylebarron/arro3/pull/376
- chore: Remove PyBuffer workaround with custom drop implementation by @kylebarron in https://github.com/kylebarron/arro3/pull/392
- chore: point numpy dependency at released version by @alex in https://github.com/kylebarron/arro3/pull/393
New Contributors
- @alex made their first contribution in https://github.com/kylebarron/arro3/pull/393
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.11.0...pyo3-arrow-v0.12.0
- Rename
-
0.11.001 Aug 2025Release notes
Open source →- Bump to
arrow56. - Improved array formatting of
PyArray,PyChunkedArray,PyRecordBatch,PyScalar, andPyTablein the__repr__exposed to Python if you re-export these types in your Python library #335.
- Bump to
-
0.10.119 May 2025Release notes
Open source →- Fix pyo3-arrow error when importing buffer protocol object. We were incorrectly validating the stride. But since we already checked the buffer to be C-contiguous, we don't need to check for strides again. (Part of #328).
- Make a workaround to the upstream regression/change in https://github.com/apache/arrow-rs/pull/7247 that caused the test that checks we can import a zero-length record batch to fail. This also makes my code cleaner by utilizing the upstream
make_arraynow that we have a fix to https://github.com/apache/arrow-rs/issues/6151 (Part of #328).
-
0.10.019 May 2025 -
0.9.011 Apr 2025Release notes
Open source →- Bump to arrow 55.
- Minimize arrow crate dependency surface (#318). Don't depend on
arrow; instead depend on individual arrow crates for a smaller dependency tree and faster compile times.
-
0.8.017 Mar 2025Release notes
Open source →Breaking Changes
- A bare
DataTypeis now exported through__arrow_c_schema__(such as when passing topyarrow.field) withnullable: true. This is required to match equality semantics with pyarrow. by @kylebarron in #483
Bug Fixes
- fix!: Fix type equality between arro3 and pyarrow by @kylebarron in #483
Full Changelog: py-v0.7.0...py-v0.8.0
Release notes
Open source →Breaking Changes
- A bare
DataTypeis now exported through__arrow_c_schema__(such as when passing topyarrow.field) withnullable: true. This is required to match equality semantics with pyarrow. by @kylebarron in https://github.com/kylebarron/arro3/pull/483
Bug Fixes
- fix!: Fix type equality between arro3 and pyarrow by @kylebarron in https://github.com/kylebarron/arro3/pull/483
Full Changelog: https://github.com/kylebarron/arro3/compare/py-v0.7.0...py-v0.8.0
Release notes
Open source →What's Changed
- Bump to pyo3 0.24.
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.7.2...pyo3-arrow-v0.8.0
- A bare
-
0.7.222 Feb 2025Release notes
Open source →What's Changed
- Add
into_arro3method https://github.com/kylebarron/arro3/pull/289
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.7.1...pyo3-arrow-v0.7.2
- Add
-
0.7.121 Feb 2025Release notes
Open source →What's Changed
- Bump to pyo3 0.23.4 https://github.com/kylebarron/arro3/pull/287
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.7.0...pyo3-arrow-v0.7.1
-
0.7.013 Feb 2025Release notes
Open source →Breaking changes
- feat!: Make
Table.remove_columnreturnIndexErrorby @surister in #442 - fix: Rename
namestocolumnsparameter inTables.drop_columnsby @surister in #453 - fix: Properly return
IndexErroron incorrect index inTable.add_columnby @surister in #455
Improvements
- ci: Build 3.14t wheels by @kylebarron in #428
- feat: Make
Table.append_columnsupportArrayby @surister in #433 - feat: Make
Table.set_columnandTable.add_columnsupportArrayandArrayReaderby @surister in #437 - fix: off by one when checking if an index is valid by @surister in #443
- feat: Implement
Table.drop_columnsby @surister in #440 - fix:
Table.renamenot modifying internals batches schema by @surister in #457 - fix: Improve error messaging by adding more information by @surister in #447
- feat: Match
RecordBatch.from_arraysclosely to pyarrow by @AlenkaF in #461
Bug Fixes
- fix: Preserve schema metadata in RecordBatch PyCapsule export by @bretttully in #474
- fix: Update license metadata in
pyproject.tomlby @kylebarron in #480
Other improvements
- chore: Bump to arrow 57 by @kylebarron in #424
- chore: Bump arro3 to pyo3 0.27 by @kylebarron in #425
New Contributors
- @surister made their first contribution in #433
- @AlenkaF made their first contribution in #461
- @bretttully made their first contribution in #474
Full Changelog: py-v0.6.5...py-v0.7.0
Release notes
Open source →Breaking changes
- feat!: Make
Table.remove_columnreturnIndexErrorby @surister in https://github.com/kylebarron/arro3/pull/442 - fix: Rename
namestocolumnsparameter inTables.drop_columnsby @surister in https://github.com/kylebarron/arro3/pull/453 - fix: Properly return
IndexErroron incorrect index inTable.add_columnby @surister in https://github.com/kylebarron/arro3/pull/455
Improvements
- ci: Build 3.14t wheels by @kylebarron in https://github.com/kylebarron/arro3/pull/428
- feat: Make
Table.append_columnsupportArrayby @surister in https://github.com/kylebarron/arro3/pull/433 - feat: Make
Table.set_columnandTable.add_columnsupportArrayandArrayReaderby @surister in https://github.com/kylebarron/arro3/pull/437 - fix: off by one when checking if an index is valid by @surister in https://github.com/kylebarron/arro3/pull/443
- feat: Implement
Table.drop_columnsby @surister in https://github.com/kylebarron/arro3/pull/440 - fix:
Table.renamenot modifying internals batches schema by @surister in https://github.com/kylebarron/arro3/pull/457 - fix: Improve error messaging by adding more information by @surister in https://github.com/kylebarron/arro3/pull/447
- feat: Match
RecordBatch.from_arraysclosely to pyarrow by @AlenkaF in https://github.com/kylebarron/arro3/pull/461
Bug Fixes
- fix: Preserve schema metadata in RecordBatch PyCapsule export by @bretttully in https://github.com/kylebarron/arro3/pull/474
- fix: Update license metadata in
pyproject.tomlby @kylebarron in https://github.com/kylebarron/arro3/pull/480
Other improvements
- chore: Bump to arrow 57 by @kylebarron in https://github.com/kylebarron/arro3/pull/424
- chore: Bump arro3 to pyo3 0.27 by @kylebarron in https://github.com/kylebarron/arro3/pull/425
Release notes
Open source →What's Changed
- Add frozen parameter to pyclass macro by @kylebarron in https://github.com/kylebarron/arro3/pull/282
- Avoid returning
PyObjectand add wrapper types for arro3 export by @kylebarron in https://github.com/kylebarron/arro3/pull/269 - Bump to arrow 54 by @kylebarron in https://github.com/kylebarron/arro3/pull/285
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.6.0...pyo3-arrow-v0.7.0
- feat!: Make
-
0.6.004 Dec 2024Release notes
Open source →arro3-coreBreaking Changes :wrench:
No breaking changes.
New features :sparkles:
- Expanded dtype support in
Array.from_numpy. It now additionally supportsdatetime64,timedelta64, fixed-width strings and bytes, variable-width strings, andobjectdtypes that containstrorbytes. - Support FixedSizeBinary in Array constructor by @kylebarron in https://github.com/kylebarron/arro3/pull/358
- Add mask parameter to list/struct constructors by @kylebarron in https://github.com/kylebarron/arro3/pull/382
Bug fixes :bug:
- Preserve exceptions when Arrow PyCapsule dunder method fails by @kylebarron in https://github.com/kylebarron/arro3/pull/374
Updated dependencies :arrow_up:
- Use Rust
arrow56 by @kylebarron in https://github.com/kylebarron/arro3/pull/368. This includes all changes in the upstream Changelog.
Full Changelog: https://github.com/kylebarron/arro3/compare/py-v0.5.1...py-v0.6.0
Release notes
Open source →What's Changed
- Bump pyo3-arrow to pyo3 0.23 by @kylebarron in https://github.com/kylebarron/arro3/pull/265
- Add test for segmentation fault when converting arro3.core.Array to pyarrow.Array at interpreter exit by @3ok in https://github.com/kylebarron/arro3/pull/236
- Implement FromPyObject for PyArrowBuffer by @kylebarron in https://github.com/kylebarron/arro3/pull/241
- rust constructor for PyArrowBuffer by @kylebarron in https://github.com/kylebarron/arro3/pull/242
New Contributors
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.5.1...pyo3-arrow-v0.6.0
- Expanded dtype support in
-
0.5.114 Oct 2024Release notes
Open source →What's Changed
- chore: Use released pyo3-file by @kylebarron in https://github.com/kylebarron/arro3/pull/341
- feat: Support serializing binary view and string view array types to numpy by @kylebarron in https://github.com/kylebarron/arro3/pull/348
- fix(arro3-core): Add typing-extensions as a dependency for arro3-core by @kylebarron in https://github.com/kylebarron/arro3/pull/350
- feat(arro3-core): Improved repr for Array and ChunkedArray by @kylebarron in https://github.com/kylebarron/arro3/pull/351
- chore: bump dev versions for geoarrow-types and pyarrow by @kylebarron in https://github.com/kylebarron/arro3/pull/352
Full Changelog: https://github.com/kylebarron/arro3/compare/py-v0.5.0...py-v0.5.1
Release notes
Open source →What's Changed
- Fix
no-default-featuresfor pyo3-arrow by @kylebarron in https://github.com/kylebarron/arro3/pull/232 - Custom drop on PyBufferWrapper by @kylebarron in https://github.com/kylebarron/arro3/pull/231
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.5.0...pyo3-arrow-v0.5.1
-
0.5.011 Oct 2024Release notes
Open source →New features :sparkles:
- feat: access value_fields and inner fields by @ion-elgreco in https://github.com/kylebarron/arro3/pull/334
- feat(arro3-core): Basic data rendering in
__repr__by @kylebarron in https://github.com/kylebarron/arro3/pull/335
Bug fixes :bug:
- feat(arro3-core): Make
DataTypehashable by @kylebarron in https://github.com/kylebarron/arro3/pull/336 - test(arro3-core): Check that
Schemais iterable by @kylebarron in https://github.com/kylebarron/arro3/pull/338
Documentation updates :memo:
- Add sphinx interlinking for
ArrowStreamExportableby @kylebarron in https://github.com/kylebarron/arro3/pull/339
New Contributors
- @ion-elgreco made their first contribution in https://github.com/kylebarron/arro3/pull/334
Full Changelog: https://github.com/kylebarron/arro3/compare/py-v0.4.6...py-v0.5.0
Release notes
Open source →What's Changed
- Bump to pyo3 0.22 by @kylebarron in https://github.com/kylebarron/arro3/pull/226
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.4.0...pyo3-arrow-v0.5.0
-
0.4.003 Oct 2024Release notes
Open source →Enhancements :magic_wand:
-
Zero-copy buffer protocol data import by @kylebarron in https://github.com/kylebarron/arro3/pull/204
- Handle multi-dimensional buffer protocol input by @kylebarron in https://github.com/kylebarron/arro3/pull/208
- Prefer zero-copy in from_numpy by @kylebarron in https://github.com/kylebarron/arro3/pull/214
-
New compute functions:
- Add date_part by @kylebarron in https://github.com/kylebarron/arro3/pull/202
- Aggregate functions: array min, max, sum by @kylebarron in https://github.com/kylebarron/arro3/pull/193
- Arith functions by @kylebarron in https://github.com/kylebarron/arro3/pull/194
- More compute functions by @kylebarron in https://github.com/kylebarron/arro3/pull/104
-
Implement scalar equality by @kylebarron in https://github.com/kylebarron/arro3/pull/205
-
Improved docstrings by @kylebarron in https://github.com/kylebarron/arro3/pull/198
-
Add installation section to readme by @kylebarron in https://github.com/kylebarron/arro3/pull/189
Bug fixes :bug:
- Fix data type bit width by @kylebarron in https://github.com/kylebarron/arro3/pull/190
- Fix return type of
RecordBatch.columnby @kylebarron in https://github.com/kylebarron/arro3/pull/191
Release notes
Open source →Enhancements :magic_wand:
- Zero-copy buffer protocol data import by @kylebarron in https://github.com/kylebarron/arro3/pull/204
- Handle multi-dimensional buffer protocol input by @kylebarron in https://github.com/kylebarron/arro3/pull/208
- Put buffer protocol behind feature flag by @kylebarron in https://github.com/kylebarron/arro3/pull/215
- Implement
FromPyObjectforPyScalarby @kylebarron in https://github.com/kylebarron/arro3/pull/199
Full Changelog: https://github.com/kylebarron/arro3/compare/pyo3-arrow-v0.3.0...pyo3-arrow-v0.4.0
-
-
0.3.027 Sep 2024Release notes
Open source →Enhancements :magic_wand:
- Wheels for pyodide are auto-built on CI and published to Github releases.
- Ensure Parquet schema metadata is added to arrow table by @kylebarron in https://github.com/kylebarron/arro3/pull/137
- Access dictionary array keys and values by @kylebarron in https://github.com/kylebarron/arro3/pull/139
- Support reading Parquet from file objects by @kylebarron in https://github.com/kylebarron/arro3/pull/142
- Implement dictionary encoding by @kylebarron in https://github.com/kylebarron/arro3/pull/136
- Support for Arrow scalars and converting to Python objects by @kylebarron in https://github.com/kylebarron/arro3/pull/159
- Move functional accessors to core module by @kylebarron in https://github.com/kylebarron/arro3/pull/151
- Support for python buffer protocol by @kylebarron in https://github.com/kylebarron/arro3/pull/156
Bug fixes :bug:
- Fix field metadata propagation by @kylebarron in https://github.com/kylebarron/arro3/pull/150
- Set strip=true for maturin builds by @kylebarron in https://github.com/kylebarron/arro3/pull/155
- Support
__getitem__with a negative index by @kylebarron in https://github.com/kylebarron/arro3/pull/171 - support f16 in from_numpy by @kylebarron in https://github.com/kylebarron/arro3/pull/154
- Fix writing to file by @kylebarron in https://github.com/kylebarron/arro3/pull/138
Full Changelog: https://github.com/kylebarron/arro3/compare/py-v0.2.1...py-v0.3.0
Release notes
Open source →Enhancements :magic_wand:
- Implement casting via Arrow PyCapsule Interface. This means that pyo3-arrow now respects the
requested_schemaargument. If the cast is invalid, the original data is exported. - New
PyScalarclass for managing Arrow scalar interop. PyArrayandPyScalarimplementDatum.- Public API to import Arrow objects from raw PyCapsules. https://github.com/kylebarron/arro3/pull/183
- Bump to Arrow 53.
- Use
thiserrorfor the error enum. - New
AnyDatuminput object for allowing either array or scalar input.
Fixes :bug:
- Handle RecordBatch import with positive length but no columns. https://github.com/kylebarron/arro3/pull/177
-
0.2.106 Sep 2024 -
0.2.013 Aug 2024Release notes
Open source →Enhancements :magic_wand:
- In general, high parity with pyarrow for most data access and management. Most of the
Table,ChunkedArray,Array,RecordBatchReader,Schema, andFieldmethods and behavior should be similar to pyarrow. - An
ArrayReader, an abstraction beyondRecordBatchReaderto allow a stream of arrow arrays that are not RecordBatches. - Readers and writers for Parquet, Arrow IPC, CSV, and JSON.
- Initial compute functions.
- Initial Python tests.
- Improved documentation, both in the type stubs and in the docs website.
- Pyodide wheel support.
Release notes
Open source →Enhancements :magic_wand:
- New
ArrayReader. It parallelsRecordBatchReaderbut is more general, supporting arbitrary Arrow arrays that do not have to represent a record batch. - New
AnyArrayenum that supports eitherArrayorArrayReaderinput. - Improved documentation.
Fixes :bug:
- Validate Schema/Field when constructing new Array/ChunkedArray/Table (#72)
- Convert
Table::newtoTable::try_newand ensure that all batches have the same schema. Similar forArray::newandChunkedArray::new. - Reorder args for
Table::new
- In general, high parity with pyarrow for most data access and management. Most of the
-
0.1.028 Jun 2024 -
0.1.0-beta.125 Jun 2024 pre-releaseNothing published for this version