FastAPI development kit with Rust-powered performance modules
Project description
Boltra
Django-like productivity for FastAPI projects.
Boltra is a FastAPI development kit for building modern backend systems faster. It generates direct FastAPI code and adds structure, CLI automation, apps, ORM, admin, auth, workers, and Rust-powered performance modules — without hiding FastAPI.
boltra --help
boltra --version
boltra new myapp
cd myapp && uv sync && boltra dev
# Coming in Phase 5+
boltra add orm
Status
Early development. See doc/plan/phase.md for the phased roadmap.
| Track | Phases | Focus |
|---|---|---|
| Foundation | 0–8 | CLI, project generator, apps, settings |
| ORM Core | 9–18 | From-scratch async ORM (Python) |
| ORM Rust | 19–21 | SQL builder, row decoder, pool helpers |
| Batteries | 22–28 | Admin, auth, worker, AI, Docker, tests |
| Hardening | 29–32 | Observability, security, benchmarks |
| V1 | 33 | Stable release |
Stack
| Layer | Tool | Role |
|---|---|---|
| Python | uv | Fast package manager and virtualenv |
| Python ↔ Rust | maturin + PyO3 | Native extension build and FFI |
| Rust | cargo | Hot-path acceleration (SQL, row decode) |
| Quality | ruff, mypy, pytest, pre-commit | Lint, types, tests |
Requirements
- Python ≥ 3.12
- uv (package manager)
- Rust ≥ 1.85 (maturin compiles
boltra._nativeon install)
Development
# Install Python (uv manages the venv automatically)
uv sync --group dev
# Rebuild the PyO3 extension after Rust changes
uv run maturin develop --uv
# Run quality checks
uv run ruff check .
uv run ruff format --check .
uv run mypy src
uv run pytest
# Verify Python fallback when native is disabled
BOLTRA_DISABLE_NATIVE=1 uv run pytest
# Install pre-commit hooks
uv run pre-commit install
Native extension
The Rust crate crates/boltra-core exposes boltra._native via PyO3. Python code uses boltra.native.is_available() and always has a fallback path.
import boltra
boltra.is_available() # True when PyO3 extension is loaded
boltra.native_version() # "0.4.0"
Disable native acceleration (for testing or unsupported platforms):
BOLTRA_DISABLE_NATIVE=1 uv run pytest
Repository layout
boltra/
├── src/boltra/ # Python package
│ ├── native.py # Rust bridge + fallback
│ └── _native.pyi # Type stubs for PyO3 module
├── crates/boltra-core/ # PyO3 extension (maturin)
├── tests/
├── benchmarks/
├── doc/
│ ├── user/ # end-user guides
│ ├── developer/ # contributor docs
│ └── plan/
├── pyproject.toml # maturin build backend
├── Cargo.toml # Rust workspace (release LTO enabled)
└── uv.lock
Documentation
| Audience | Start here |
|---|---|
| Users | doc/user/ — install, CLI |
| Developers | doc/developer/ — architecture, files, workflow |
| Roadmap | doc/plan/phase.md |
| Rusjango migration | doc/plan/rusjango-migration.md |
| Changelog | doc/plan/CHANGELOG.md |
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file boltra-0.4.0-cp312-abi3-win_amd64.whl.
File metadata
- Download URL: boltra-0.4.0-cp312-abi3-win_amd64.whl
- Upload date:
- Size: 281.1 kB
- Tags: CPython 3.12+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aba9f00be2810b64b019185062ffedc3ec71f479d2ff71bc9f5350ed7f3b53ca
|
|
| MD5 |
7206638120ef158382938326661938c1
|
|
| BLAKE2b-256 |
27b7abe018836f86b8337b4379f86e4c5f6eac09a8cfdc161bf56265163c9f32
|
File details
Details for the file boltra-0.4.0-cp312-abi3-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: boltra-0.4.0-cp312-abi3-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 357.3 kB
- Tags: CPython 3.12+, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f303946d66ab4daca0178b9e44ba5219c5cc555f33f8b0b0f3c0ba6d2fb9b02
|
|
| MD5 |
2745f396b36cadeb4c4fdc4d2752e800
|
|
| BLAKE2b-256 |
59f12302b0bb494c36fff7675812711c6708e6dc056e5f798573d45a7b06612a
|
File details
Details for the file boltra-0.4.0-cp312-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: boltra-0.4.0-cp312-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 655.1 kB
- Tags: CPython 3.12+, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6920c6284c229414d3a1b8acfb451d3a0770fd91be35edefc72b0b13dd775d5b
|
|
| MD5 |
9ffb756099b14a62144bd2689bdbb5dd
|
|
| BLAKE2b-256 |
7467b463f1d5862be8fd541013f73c9c4c5a6c88046a6e0d71195f9808b34278
|