azure-kusto-parquet-conv/arrow-rs/arrow-pyarrow-integration-t...
Michael Spector 3ce37c100b Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
..
.cargo Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
src Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
tests Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
.gitignore Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
Cargo.toml Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
README.md Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00
pyproject.toml Support microsecond precision in timestamps 2024-06-25 14:22:29 +03:00

README.md

Arrow + PyArrow integration testing

This is a Rust crate that tests compatibility between Rust's Arrow implementation and PyArrow.

Note that this crate uses two languages and an external ABI:

  • Rust
  • Python
  • C ABI privately exposed by Pyarrow.
  • PyCapsule ABI publicly exposed by pyarrow

Basic idea

Pyarrow exposes a C ABI to convert arrow arrays from and to its C implementation, see here.

This package uses the equivalent struct in Rust (arrow::array::ArrowArray), and verifies that we can use pyarrow's interface to move pointers from and to Rust.

Relevant literature

How to develop

# prepare development environment (used to build wheel / install in development)
python -m venv venv
venv/bin/pip install maturin toml pytest pytz pyarrow>=5.0

Whenever rust code changes (your changes or via git pull):

source venv/bin/activate
maturin develop
pytest -v .