Skip to main content

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._native on 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

boltra-0.4.0-cp312-abi3-win_amd64.whl (281.1 kB view details)

Uploaded CPython 3.12+Windows x86-64

boltra-0.4.0-cp312-abi3-manylinux_2_34_x86_64.whl (357.3 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.34+ x86-64

boltra-0.4.0-cp312-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (655.1 kB view details)

Uploaded CPython 3.12+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

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

Hashes for boltra-0.4.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 aba9f00be2810b64b019185062ffedc3ec71f479d2ff71bc9f5350ed7f3b53ca
MD5 7206638120ef158382938326661938c1
BLAKE2b-256 27b7abe018836f86b8337b4379f86e4c5f6eac09a8cfdc161bf56265163c9f32

See more details on using hashes here.

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

Hashes for boltra-0.4.0-cp312-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1f303946d66ab4daca0178b9e44ba5219c5cc555f33f8b0b0f3c0ba6d2fb9b02
MD5 2745f396b36cadeb4c4fdc4d2752e800
BLAKE2b-256 59f12302b0bb494c36fff7675812711c6708e6dc056e5f798573d45a7b06612a

See more details on using hashes here.

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

Hashes for boltra-0.4.0-cp312-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 6920c6284c229414d3a1b8acfb451d3a0770fd91be35edefc72b0b13dd775d5b
MD5 9ffb756099b14a62144bd2689bdbb5dd
BLAKE2b-256 7467b463f1d5862be8fd541013f73c9c4c5a6c88046a6e0d71195f9808b34278

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page