Skip to content

Installation

kinodb is currently a source-built project. The CLI is Rust, and the Python package is built separately through PyO3/maturin.

DependencyWhy
Rust stableBuilds kino, kino-serve, and the core crates
CMakeNeeded by native dependencies, especially HDF5 builds
HDF5 development librariesRequired by the hdf5 Rust crate used for HDF5 ingest
Python 3.8+Required for the Python bindings
maturinBuilds and installs the PyO3 extension module
Terminal window
brew install cmake
brew install hdf5@1.10
export HDF5_DIR="$(brew --prefix hdf5@1.10)"
Terminal window
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libhdf5-dev

From the repository root:

Terminal window
cargo build --release
target/release/kino --help
target/release/kino-serve --help

For convenience during local development:

Terminal window
export PATH="$PWD/target/release:$PATH"
kino --help

The Python package is intentionally excluded from the top-level Cargo workspace. Build it from its crate directory:

Terminal window
python -m pip install --upgrade pip
python -m pip install maturin numpy
cd crates/kinodb-py
maturin develop --release
cd ../..

Verify:

Terminal window
python - <<'PY'
import kinodb
print(kinodb.__version__)
print(kinodb.open)
PY
Terminal window
# PyTorch integration
python -m pip install torch torchvision
# gRPC client
python -m pip install grpcio grpcio-tools protobuf
# Benchmark and data conversion helpers
python -m pip install h5py pyarrow numpy matplotlib huggingface_hub
Terminal window
kino create-test /tmp/kinodb-smoke.kdb -n 10 --frames 32 --compress 85
kino info /tmp/kinodb-smoke.kdb
kino schema /tmp/kinodb-smoke.kdb
kino query /tmp/kinodb-smoke.kdb "num_frames >= 32"
Terminal window
python - <<'PY'
import kinodb
db = kinodb.open("/tmp/kinodb-smoke.kdb")
print(db.summary())
ep = db.read_episode(0)
print(ep["actions"].shape, ep["states"].shape)
PY

The documentation is a separate Astro Starlight site:

Terminal window
cd kinodb-docs
npm install
npm run dev

Open http://localhost:4321/kinodb/ when running with the GitHub Pages base path. For a root-local preview, remove or temporarily override base: '/kinodb' in astro.config.mjs.

SymptomFix
Invalid H5_VERSION from hdf5-sysPin HDF5 to hdf5@1.10 on macOS and export HDF5_DIR
maturin develop cannot import Rust cratesRun it from crates/kinodb-py
Python import finds an old extensionRe-run maturin develop --release in your active virtualenv
CLI feels slowMake sure you are running target/release/kino, not a debug build
gRPC client cannot import stubsGenerate Python protobuf stubs from crates/kinodb-serve/proto/kinodb.proto