Skip to main content
Django Nova Logo

Django Nova

A typed, unified, async-first toolkit for Django 5+.


Django Nova Documentation

Welcome to the documentation of Django Nova— a typed, unified, asynchronous-oriented Django toolkit. The library is designed with a focus on scientific computing, Highload, and Reproducible Research.

What is Django Nova?

Django Nova is a modern toolkit that solves Django's key architectural problems.:

  • Duplicate validation — you no longer need to write validation in forms, serializers, and models separately
  • No strict typing — full support for pyright --strict
  • Caching Issues — Smart disability without manual control
  • Difficulties with migrations — built-in support for PostgreSQL concurrent migrations

Project philosophy

  1. A single source of truth — all business logic of validation is concentrated in Pydantic schemes
  2. Fail fast — errors should be detected at the static analysis stage, not in runtime
  3. Default asynchrony — all operations are designed with asyncio in mind
  4. Zero-downtime — migrations and updates should not interrupt the system operation

Modules

nova.typing

A strict typing layer. Includes NovaModel' and NovaConfig'. Uses PEP 695 to ensure full type derivability in the IDE (PyCharm, VSCode + Pyright).

nova.validation

Django Unified Bridge <-> Pydantic (pydantic_bridge). Ensures that validation rules are not duplicated between forms, serializers, and models.

nova.cache

Intelligent QuerySet caching ('queryset_cache'). Features:

  • Using SQL Compiler to generate hashes (safe with Django updates).
  • Reversible index O(1) for instant cache invalidation during save() or `delete()'.

nova.tasks

Built-in asynchronous task engine based on asyncio.Queue`. An alternative to Celery for in-process computing (ML inference, simulation).

nova.db

Utilities for secure migrations:

  • zero_downtime.py : Wrappers over CREATE INDEX CONCURRENTLY and `ALTER TABLE' without locks (PostgreSQL).
  • splitter.py : Breaking down heavy Data Migrations into batches to prevent OOM.

📚 More Information

  • Full Documentation: docs/index.md
  • Auto-generated Status Report: STATUS.md
  • Changelog & Release Notes: CHANGELOG.md

🚀 Quick Start (5 minutes)

  1. Create a typed model
## src/app/models.pyfrom django.db import modelsfrom nova.typing import NovaModel, NovaConfigfrom pydantic import BaseModelclass ArticleSchema(BaseModel):    title: str    content: str    views: int = 0class Article(NovaModel):    _nova_config = NovaConfig(        pydantic_schema=ArticleSchema,        strict_validation=True,        cache_enabled=True,    )    title: models.CharField(max_length=200)    content: models.TextField()
  1. Use it with automatic validation
# Views or services
article = Article(title="Hello Nova", content="Typed Django!")
article.save()  # ✅ Validates against Pydantic schema automatically
  1. Enjoy type safety 🎉
# Pyright --strict compatible! ✅
article.title = 123  # Type error! Expected str

📦 Installation

Requires Python 3.12+ and Django 5.0+ (tested with Django 5.0, 5.1, 5.2).

Using uv (recommended):

# Core library
uv add django-nova

# With Django REST Framework support
uv add django-nova[drf]

# With Redis infrastructure & Distributed Locks
uv add django-nova[redis]
# or
uv add django-nova[cache]

# With OpenTelemetry tracing
uv add django-nova[tracing]

# Full enterprise stack (tracing + observability)
uv add django-nova[tracing,observability]

# With FastAPI integration
uv add django-nova[fastapi]

# With async task queue
uv add django-nova[tasks]

# With async database support
uv add django-nova[async]

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    "nova",
]

🎯 Philosophy

⚠️ This is a Beta project. See the auto-generated status report for real module-by-module coverage and stability assessment.

📊 Honest Project Status

🚀 Quick Start

📊 Current Status

🛡️ Validation Boundary

See STATUS.md for the honest, auto-generated breakdown.

📚 API Reference


👤 Author

Artem Alimpiev


📄 License

MIT License. See LICENSE for details. 2026

Download files

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

Source Distribution

django_nova-0.5.4.tar.gz (50.0 kB view details)

Uploaded Source

Built Distribution

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

django_nova-0.5.4-py3-none-any.whl (79.6 kB view details)

Uploaded Python 3

File details

Details for the file django_nova-0.5.4.tar.gz.

File metadata

  • Download URL: django_nova-0.5.4.tar.gz
  • Upload date:
  • Size: 50.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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":null}

File hashes

Hashes for django_nova-0.5.4.tar.gz
Algorithm Hash digest
SHA256 1d76f088a5fcf219fc794198d000a53f9669e3c28b6e23c6537345aad9f10c8a
MD5 463bf2815344769e757605e283f0d231
BLAKE2b-256 bef9292f7a2d7a6109c060637ef671462cf03c495dcbce87739468dac69e939e

See more details on using hashes here.

File details

Details for the file django_nova-0.5.4-py3-none-any.whl.

File metadata

  • Download URL: django_nova-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 79.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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":null}

File hashes

Hashes for django_nova-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a010d23528646b8945b6238046a141a9237a367a06842fc82736fc8219b99d4b
MD5 0582a0c567b26beaa010630a93dd7131
BLAKE2b-256 10afafae26acecb7c8a72a3bec7453cd67751f95686003015cfcf853ecb4dbe4

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.0

2 files

This release

0.5.4 This release

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page