Skip to content

Installation

Prerequisites

Tool Version Purpose
Rust stable (via rustup) compile the Rust core
Python 3.10+ run the Python package
maturin current release build the PyO3 extension
pip / venv manage Python dependencies

Install Rust

The easiest way to get Rust is via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

GPU acceleration (optional)

fastdpplot detects cudf (RAPIDS) at runtime and uses it when available. If cudf is not installed the tool falls back to pandas silently — no action needed.


Clone the repository

git clone https://github.com/bibymaths/fastdpplot.git
cd fastdpplot

Create a Python environment

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install --upgrade pip
conda create -n fastdpplot python=3.11
conda activate fastdpplot

Install Python dependencies

pip install -r requirements.txt

This installs:

  • datashader, holoviews, panel, bokeh — rendering
  • pandas, numpy, scipy — data handling
  • plotly, matplotlib — static output
  • maturin — Rust extension builder

Build the Rust extension

maturin develop

This compiles both fastdpplot-core and fastdpplot-py, then installs the fastdpplot._rs shared library into the active Python environment.

Always rebuild after changing Rust code

Python imports the compiled .so/.pyd file. Changes to any file under crates/ are not visible until you re-run maturin develop.


Release build (distribution)

maturin build --release
pip install target/wheels/fastdpplot-*.whl

The --release flag enables full compiler optimisations (opt-level = 3, lto = true, codegen-units = 1).


Verify the installation

from fastdpplot._rs import load_parquet   # Rust extension
from fastdpplot import load, render_static # Python wrappers
print("fastdpplot ready ✓")

Linting the Rust code

The project enforces zero Clippy warnings:

cargo clippy --workspace -- -D warnings