Building
Instructions for building Dinja from source.
Prerequisites
- Rust toolchain (latest stable)
- Node.js 18+ (for TypeScript client)
- Python 3.13+ (for Python client)
- Go 1.21+ (for Go client)
Building Rust Core
Running the Service
The service runs on http://localhost:8080 by default.
Building TypeScript Client
Building Python Client
The Python client is a pure Python HTTP client (no native bindings):
Or with uv:
Building Go Client
Building Docker Image
Building Documentation
cd docs
pip install mkdocs-material
mkdocs serve # For local development
mkdocs build # For production
Full Build Script
Use the build script for common operations:
./utils/build.sh build # Build Rust workspace
./utils/build.sh build-core # Build core crate only
./utils/build.sh build-release # Build in release mode
./utils/build.sh test # Run tests
./utils/build.sh test-core # Run core tests only
./utils/build.sh clean # Clean build artifacts
Running Tests
Rust Tests
Python Tests
cd clients/py
# Start service first
docker run -d -p 8080:8080 ghcr.io/hlop3z/dinja:latest
# Run tests
uv run pytest
TypeScript Tests
Go Tests
Release Process
Versions are managed in the VERSION file and synced across all packages using release.py: