tree: 48153eeddde0269fb6462123068c7ff556b12afe [path history] [tgz]
  1. .cargo/
  2. src/
  3. tests/
  4. .gitignore
  5. Cargo.toml
  6. pyproject.toml
  7. README.md
arrow-pyarrow-integration-testing/README.md

Arrow c integration

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.

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==0.8.2 toml==0.10.1 pyarrow==1.0.0

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

source venv/bin/activate
maturin develop
python -m unittest discover tests