Skip to content

The Ecosystem

Quadkit publishes five packages. Three are libraries you compose into an app — quadkit, quadkit-contracts, quadkit-web — and two are tooling: quadkit-cli scaffolds and runs projects, quadkit-testing boots them under test.

Every extension depends only on quadkit and quadkit-contracts, never on another extension. That boundary is what keeps the ecosystem composable — see Architecture.

Start from the CLI. Templates pick the first handful of packages; you add the rest later.

Terminal window
uv add "quadkit-cli>=0.0.42,<0.1"
quadkit new project my-app --template web-api
cd my-app
quadkit run

This catalog is the same list as the package sidebar and the landing cards. Canonical URLs live under /packages/{group}/…. Ungrouped /packages/quadkit-* paths redirect here.

Foundation

The container, the lifecycle, and the contracts everything else builds on.

PackageWhat it does
quadkitAsync-first core: the DI container, application lifecycle, providers, modules, typed config, and the Result model.
quadkit-contractsProtocols, shared types, and the exception hierarchy — zero runtime dependencies beyond typing-extensions.

Web & HTTP

ASGI, routing, middleware, and the Result-to-HTTP bridge.

PackageWhat it does
quadkit-webThe async web layer: controllers with signature-based binding, middleware pipelines, a Result-to-HTTP bridge, and OpenAPI.
quadkit-httpHTTP client with typed Result errors, retries, timeouts, and a pluggable transport for calling other services.

Data

Relational and document storage behind repositories.

PackageWhat it does
quadkit-sqlAsync SQL repositories: typed rows, migrations, connection pooling, and a repository base over SQLAlchemy and asyncpg.
quadkit-cacheCache primitives: a Cache protocol, in-memory and Redis backends, stampede-safe single-flight helpers, and TTL invalidation.
quadkit-storageArtifact storage: a BlobStore protocol, local and S3 backends, content-addressed keys, and signed URL helpers.

Events

Publish, subscribe, replay.

PackageWhat it does
quadkit-eventsEvent bus, outbox publishing, durable subscriptions, and a timeline/replay API for auditing what happened.

Infra

Background work and operational visibility.

PackageWhat it does
quadkit-tasksBackground tasks: a queue, worker pools, retries with backoff, schedules, and an HTTP console for observing runs.
quadkit-monitorObservability: counters, histograms, structured logs, health/readiness probes, and a metrics endpoint.

Security

Identity, sessions, and access control.

PackageWhat it does
quadkit-authAuthentication and authorization: API keys, MFA, RBAC, session stores, and login flows wired through the DI container.

Tooling

Scaffold, run, and test a project: the CLI and the testing harness.

PackageWhat it does
quadkit-cliThe quadkit command line: project scaffolding, generators, a smart runner, and admin commands.
quadkit-testingTest harnesses, fakes, and fixtures that boot the real application in-process.

A typical web application starts like this:

Terminal window
quadkit new project my-app --template web-api # quadkit, quadkit-contracts, quadkit-web
quadkit add web # wire the web section explicitly
uv add --dev quadkit-testing # test harness

quadkit add offers the providers that are actually installed — a public install advertises web, testing, connect, and resilience, and reports anything else as unknown rather than adding a package you cannot fetch.

Staged stacks: Adoption Paths. Dependency rules, extras, and runtime constraints: Compatibility.