Skip to content

Installation Guide

  • Python: 3.11, 3.12, 3.13, or 3.14 (including 3.13t/3.14t free-threaded builds)
  • Rust: 1.85+ (only required if building from source)

Install the official pre-compiled wheel package from PyPI:

Terminal window
pip install justapi

To install optional features (Pydantic v2, Jinja2, XML support):

Terminal window
pip install "justapi[full]"

uv is a fast Python package manager written in Rust. Install JustAPI with uv:

Terminal window
uv pip install justapi

With optional features:

Terminal window
uv pip install "justapi[full]"

uvx lets you run JustAPI CLI commands without a permanent install:

Terminal window
# Scaffold a new project (no install needed)
uvx justapi create my_app
# Run the dev server
uvx justapi serve --reload

This is ideal for CI pipelines, quick prototyping, and ephemeral environments.

Terminal window
python -c "import justapi; print(justapi.__version__)"
# Output: 2.0.8

The justapi CLI includes the project scaffolder, dev server with hot-reload, and database migration runner.

Terminal window
# Install from source (requires Rust 1.85+)
cargo install justapi-cli
# Verify
justapi --version
# Output: justapi 2.0.8

Pull the official Docker image:

Terminal window
docker pull ghcr.io/justapi/justapi:latest

Or build from the multi-stage Dockerfile in the repository root — the Dockerfile uses uv for fast, reproducible pip installs:

Terminal window
docker build -t justapi-app .
docker run -p 8000:8000 justapi-app

Clone the repository and build the native PyO3 bindings with maturin:

Terminal window
git clone https://github.com/swadhinbiswas/JustAPI.git
cd JustAPI
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate
# Build the Rust extension
maturin develop --release --manifest-path crates/justapi-py/Cargo.toml
# Install Python dependencies
pip install pydantic
# Build the CLI (optional)
cargo install --path crates/justapi-cli
Terminal window
# Enable TLS, compression, and OpenTelemetry support
maturin develop --release -m crates/justapi-py/Cargo.toml --features tls,compression,opentelemetry

Pre-built wheels are available for manylinux_2_28 (x86_64 and ARM64) and musllinux_1_2 (Alpine).

Required system packages:

Terminal window
# Debian/Ubuntu
apt-get install libssl-dev pkg-config python3-dev
# Alpine
apk add openssl-dev pkgconfig python3-dev rust cargo

Pre-built wheels available for x86_64 and ARM64 (Apple Silicon).

Terminal window
# Ensure you have Xcode Command Line Tools
xcode-select --install

Pre-built wheels available for x64. When building from source, install Visual Studio Build Tools with C++ support.

Ensure you have Rust installed. If you don’t need to build from source, try the pre-built wheel:

Terminal window
pip install --only-binary=justapi justapi
Terminal window
# Ensure you're in a virtual environment
python -m venv .venv
source .venv/bin/activate
# Update pip and maturin
pip install --upgrade pip maturin

The Rust extension wasn’t built. Run maturin develop --release from the repository root.