Skip to main content
Runsmith Logo

Supervisor-tree framework for building predictable and resilient programs.

codecov coverage

Not every Python service is a web app. Many systems are composed of multiple independently long-running units — think of an ETL service with a data poller, a transformer, and a result notifier, each with its own lifecycle, failure modes, and recovery needs. Wiring this by hand with retry loops, watchdog threads, and scattered state flags brittle glue code that is hard to reason about.

Runsmith brings structure to this problem. Each unit becomes a worker with an explicit FSM lifecycle. A supervisor tree monitors every worker continuously — detecting stalls and timeouts, not just crashes — and confines restarts to the failed unit so the rest of the system keeps running.

Predictable — every worker lifecycle is declared upfront as an FSM. No hidden control flow.

Composable — supervisors are workers too. Nest them at any depth, freely mixing thread, process, and asyncio execution in one tree.

Resilient — heartbeat, transition, and state-residence timeouts are enforced automatically. Failed workers are restarted within configurable quotas.

Install

pip install runsmith

Documentation

Full documentation, quickstart guide, and examples at https://runsmith.lu-d.com.

Metadata

Release files for runsmith 1.2.1

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

Source distribution (sdist)

Source distribution for runsmith 1.2.1
File Size Uploaded
runsmith-1.2.1.tar.gz 171.2 kB Details

Built distribution (wheel)

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

Total release size: 194.4 kB

Release files / runsmith-1.2.1.tar.gz

Download URL runsmith-1.2.1.tar.gz
Size 171.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e67db76b695a7fedc9224569fe68ef866001c804ef19743c0906b363409a2b1e
BLAKE2b-256 checksum
How to use checksums
242985cd1bd62e10e1f58207b69353a0e01c9362e8290a3759149599c5873b51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.8

Release files / runsmith-1.2.1-py3-none-any.whl

Download URL runsmith-1.2.1-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de9ee35d3e3087b596e2feaee2a7e1e78db9aabb298525e7ad6a3e9b521130ce
BLAKE2b-256 checksum
How to use checksums
f6b09719e5acd0959663036d7b9ebdc5a10c554438726d7b33b45f6966fb0945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.8

Release history Release notifications | RSS feed

1.2.3

2 release files

1.2.2

2 release files

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

1 release file

0.1.0

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