Skip to main content

Fast Healthchecks

Project description

Fast Healthchecks

Framework-agnostic health checks with integrations for the most popular ASGI frameworks: FastAPI / FastStream / Litestar to help you implement the Health Check API pattern


Test Passing Coverage Downloads Package version Supported Python versions License Documentation


Installation

pip install fast-healthchecks (or poetry add / uv add). Backends and framework integrations are optional extras. See documentation → Installation for all options and extra names.

Quick Start

FastAPI
from fastapi import FastAPI
from fast_healthchecks import Probe
from fast_healthchecks.integrations.fastapi import HealthcheckRouter

app = FastAPI()
app.include_router(HealthcheckRouter(Probe(checks=[...])))
FastStream / Litestar
from fast_healthchecks import Probe
from fast_healthchecks.integrations.faststream import health

# or: from fast_healthchecks.integrations.litestar import health
routes = health(Probe(checks=[...]))

Usage depends on the framework (FastAPI: HealthcheckRouter; FastStream / Litestar: health() from the corresponding integration). Full examples, configuration, lifecycle and shutdown, URL/SSRF, and DSN formats are in the documentation. Example projects: FastAPI, FastStream, Litestar.

Probe Runner (Advanced)

For fine-grained control over probe execution, use ProbeRunner as an async context manager:

from fast_healthchecks import Probe
from fast_healthchecks.execution import ProbeRunner, RunPolicy

probe = Probe(name="my-probe", checks=[...])

# Use context manager for automatic resource cleanup
async with ProbeRunner(
    policy=RunPolicy(
        mode="reporting",
        execution="sequential",
        probe_timeout_ms=5000,  # 5 second timeout per probe
    )
) as runner:
    report = await runner.run(probe)
    # Runner automatically closes probes on exit

Key features:

  • RunPolicy: Customize execution mode (strict/reporting), timeout, and health evaluation
  • Automatic cleanup: Probes are closed when exiting the async with block
  • Reusable runner: Run multiple probes with the same policy

See documentation for details.

Development

For the full list of recipes and their descriptions, run just or just --list (source of truth: justfile).

Setup environment

git clone https://github.com/ZYLVEXT/fast-healthchecks.git
cd fast-healthchecks
uv sync --group=dev --group=docs --all-extras

Run linters

just lint

Running tests

  • Import tests: just tests-imports — verifies ImportError messages when optional deps are missing; runs with minimal install (uv sync --group=dev only, no extras).
  • Unit tests: just tests-unit — runs pytest with -m unit. Expects dev deps and optional extras already installed (e.g. after uv sync --group=dev --all-extras or after just tests-integration). FastStream unit tests use TestKafkaBroker(connect_only=True) and TestApp so no real Kafka is required.
  • Integration tests: just tests-integration — requires Docker and docker compose; brings services up, runs integration tests, then brings them down. Set DOCKER_SERVICES_UP=1 to skip compose up/down when services are already running.
  • Full suite: just tests-all — runs import tests, then integration (compose up, pytest integration, compose down), then unit tests. Requires Docker.

Certificates in tests/certs/ are for tests only; see CONTRIBUTING § Test certificates.

CI runs pre-commit, import tests, and unit tests on push/PR; integration tests run only on manual workflow dispatch or schedule.

Serve documentation

just serve-docs

Release and CI (maintainers)

Bump, rollback, workflows, secrets, pre-commit, and dependency updates: see CONTRIBUTING § CI and release and the workflows table there. Quick links: Bump version, Rollback release.

Known alternatives

License

This project is licensed under the terms of the MIT 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 Distribution

fast_healthchecks-1.0.0.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

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

fast_healthchecks-1.0.0-py3-none-any.whl (51.7 kB view details)

Uploaded Python 3

File details

Details for the file fast_healthchecks-1.0.0.tar.gz.

File metadata

  • Download URL: fast_healthchecks-1.0.0.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fast_healthchecks-1.0.0.tar.gz
Algorithm Hash digest
SHA256 89717c0a9149d96cda858db017a306200edf2d947b04413b2adb634bee7abaa8
MD5 16474f9ae9197d05f4ccd42c8626f4aa
BLAKE2b-256 8f1a877d05331457b0a4088c24d4e50eba7107b344bf9c5601872596113320fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_healthchecks-1.0.0.tar.gz:

Publisher: 3_release.yml on ZYLVEXT/fast-healthchecks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fast_healthchecks-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fast_healthchecks-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6720ff27eec44340fbd4559e673865f261690b334be22eb201f3ad31177d56f4
MD5 a3a6e58e6a595cafffe11cbb7246e2cc
BLAKE2b-256 511658c665a08958435843626058cc9b4330df1628e04e25c56e7d813eb0e327

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_healthchecks-1.0.0-py3-none-any.whl:

Publisher: 3_release.yml on ZYLVEXT/fast-healthchecks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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