PyVelox: Python bindings and extensions for Velox¶
This library is currently in Alpha stage and does not have a stable release. The API and implementation may change based on user feedback or performance. Future changes may not be backward compatible. If you have suggestions on the API or use cases you’d like to be covered, please open a GitHub issue. We’d love to hear thoughts and feedback.
Prerequisites¶
You will need Python 3.9 or later. We recommend using uv
for Python
Environment Management uv is a
fast Python package installer and environment manager written in Rust.
Here’s how to use it:
Install uv:
brew install uv # or pipx uv # or curl -LsSf https://astral.sh/uv/install.sh | sh
Create a virtual environment:
uv venv --python=3.12
This creates a venv in the current directory. You can specify a path:
uv venv --python=3.12 /path/to/venv
Activate the environment:
source .venv/bin/activate
Installing packages:
uv pip install pyvelox
Or from a requirements file:
uv pip install -r requirements.txt
Install PyVelox¶
You can install PyVelox from pypi without the need to build it from source as we provide wheels for Linux and macOS (x86_64):
uv pip install pyvelox
From Source¶
You will need Python 3.9 or later and a C++17 compiler to build PyVelox from source.
First, set up a virtual environment and activate it. Now install the build requirements to enable editable builds:
uv pip install pyarrow scikit-build-core setuptools_scm[toml]
Install Dependencies¶
On macOS
HomeBrew is required to install development tools on macOS. Run the script referenced here to install all the mac specific dependencies.
On Linux Run the script referenced here to install on linux.
Build PyVelox¶
For local development, you can build an editable debug build with automatic rebuilds:
make python-build
And run unit tests with
make python-test