Installation
kinodb is currently a source-built project. The CLI is Rust, and the Python package is built separately through PyO3/maturin.
Prerequisites
Section titled “Prerequisites”| Dependency | Why |
|---|---|
| Rust stable | Builds kino, kino-serve, and the core crates |
| CMake | Needed by native dependencies, especially HDF5 builds |
| HDF5 development libraries | Required by the hdf5 Rust crate used for HDF5 ingest |
| Python 3.8+ | Required for the Python bindings |
| maturin | Builds and installs the PyO3 extension module |
brew install cmakebrew install hdf5@1.10export HDF5_DIR="$(brew --prefix hdf5@1.10)"Ubuntu / Debian
Section titled “Ubuntu / Debian”sudo apt-get updatesudo apt-get install -y build-essential cmake pkg-config libhdf5-devBuild The CLI
Section titled “Build The CLI”From the repository root:
cargo build --releasetarget/release/kino --helptarget/release/kino-serve --helpFor convenience during local development:
export PATH="$PWD/target/release:$PATH"kino --helpBuild Python Bindings
Section titled “Build Python Bindings”The Python package is intentionally excluded from the top-level Cargo workspace. Build it from its crate directory:
python -m pip install --upgrade pippython -m pip install maturin numpy
cd crates/kinodb-pymaturin develop --releasecd ../..Verify:
python - <<'PY'import kinodbprint(kinodb.__version__)print(kinodb.open)PYOptional Python Dependencies
Section titled “Optional Python Dependencies”# PyTorch integrationpython -m pip install torch torchvision
# gRPC clientpython -m pip install grpcio grpcio-tools protobuf
# Benchmark and data conversion helperspython -m pip install h5py pyarrow numpy matplotlib huggingface_hubSmoke Test
Section titled “Smoke Test”kino create-test /tmp/kinodb-smoke.kdb -n 10 --frames 32 --compress 85kino info /tmp/kinodb-smoke.kdbkino schema /tmp/kinodb-smoke.kdbkino query /tmp/kinodb-smoke.kdb "num_frames >= 32"python - <<'PY'import kinodbdb = kinodb.open("/tmp/kinodb-smoke.kdb")print(db.summary())ep = db.read_episode(0)print(ep["actions"].shape, ep["states"].shape)PYDocs Site
Section titled “Docs Site”The documentation is a separate Astro Starlight site:
cd kinodb-docsnpm installnpm run devOpen 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.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Fix |
|---|---|
Invalid H5_VERSION from hdf5-sys | Pin HDF5 to hdf5@1.10 on macOS and export HDF5_DIR |
maturin develop cannot import Rust crates | Run it from crates/kinodb-py |
| Python import finds an old extension | Re-run maturin develop --release in your active virtualenv |
| CLI feels slow | Make sure you are running target/release/kino, not a debug build |
| gRPC client cannot import stubs | Generate Python protobuf stubs from crates/kinodb-serve/proto/kinodb.proto |