Skip to main content

quadkit

Async-first DI/IoC framework for Python — core package.

Quadkit demo


Overview

Quadkit is the foundation package for the wider Quadkit ecosystem. It provides the DI/IoC container, application lifecycle, configuration system, provider protocol, exception hierarchy, and structured logging foundation.

Async-first by design: application boot, provider lifecycle, I/O paths, and resolution workflows are built for async Python. Use Application.boot(...) to assemble modules and providers into a running app.

Install

uv add quadkit
# Optional extras
uv add "quadkit[security]"

Quick Start

from quadkit import Application
from quadkit.di.module import Module, module
from quadkit.app.standard import StandardModule


@module(imports=[StandardModule.configure()])
class AppModule(Module):
    pass


async with Application.boot(modules=[AppModule]) as app:
    # use app.container to resolve services
    ...

Configuration

Zero-config usage: Call StandardModule.configure() with no arguments to use defaults.

Option 1 — YAML file

# application.yaml
app_name: my-app
debug: false
export QK_PROFILE=production
# Environment variables for each field

Option 3 — Python

from quadkit.config.main import QuadkitConfig

config = QuadkitConfig(...)
StandardModule.configure(config_class=QuadkitConfig)

Module Factory Methods

Method Description
StandardModule.configure(...) Configure with explicit config, sources, or overrides
StandardModule.build_providers() Provider list for Application.boot(providers=[...])
CoreModule.configure(...) Stripped-down kernel without serialization or concurrency

Key Features

  • DI Container — register services as singleton, transient, or scoped; resolve via await container.resolve(ServiceType)
  • Provider Lifecycle — register(), boot(), shutdown() hooks with priority ordering
  • Result Pattern — Result[T, E] for expected domain failures, exceptions for infrastructure errors
  • Module System — compose applications from reusable modules with explicit exports
  • Structured Logging — structlog-based logging via get_logger(__name__)
  • Configuration — Pydantic-based config with YAML, environment variables, and profile support

Testing

async with Application.boot(modules=[StandardModule.configure()]) as app:
    # your test code
    ...

Key Source Files

File What it contains
src/quadkit/app/base.py Application lifecycle and boot flow
src/quadkit/app/standard.py StandardModule.configure() with all kernel providers
src/quadkit/di/container/container.py Container registration, scope, and diagnostics
src/quadkit/result/ Result, Ok, Err, and helpers
src/quadkit/config/main.py QuadkitConfig and configuration system

Release files for quadkit 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quadkit 0.0.2
File Size Uploaded
quadkit-0.0.2.tar.gz 572.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quadkit 0.0.2
File Interpreter ABI Platform
quadkit-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / quadkit-0.0.2.tar.gz

Download URL quadkit-0.0.2.tar.gz
Size 572.8 kB
Tags Source
SHA-256 checksum
How to use checksums
60b23dadc97014cdfe804dcf9b22e4c18af3228496e46d46a7f57d3055e2d7da
BLAKE2b-256 checksum
How to use checksums
089bf103cae1a4e2446193917b2058d163bf0b2fc8e55c85a2ee2587770e7b9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release files / quadkit-0.0.2-py3-none-any.whl

Download URL quadkit-0.0.2-py3-none-any.whl
Size 434.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2af9e573719071a1382a7c33242226271a801ce0ee936a3897c1178623cff961
BLAKE2b-256 checksum
How to use checksums
8c9513c01ad084a151725eefbc2ebc5b8dd1d1b14b496494dd238a3c11797fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release history Release notifications | RSS feed

0.0.42

2 release files

0.0.41

2 release files

0.0.4

2 release files

0.0.3

2 release files

This release

0.0.2 This release

2 release files

0.0.1

2 release 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