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.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runsmith-1.2.0.tar.gz | 170.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runsmith-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 193.6 kB
Release files / runsmith-1.2.0.tar.gz
| Download URL | runsmith-1.2.0.tar.gz |
|---|---|
| Size | 170.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c6e65ca648b06c994fb58de65062ebfe957c08a26198933b82b4a22bbf9003c
|
|
BLAKE2b-256 checksum How to use checksums |
2595252941724633f72fa5067f6c6edebf7db4d8d9c2ea24fc39602ec961e993
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / runsmith-1.2.0-py3-none-any.whl
| Download URL | runsmith-1.2.0-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b20b4951e385bb70ca710edbf206c29c95e4244f2d5438827ab353f9be005d1
|
|
BLAKE2b-256 checksum How to use checksums |
a127f03040a2d22b9669bbcfcace6a889caee6ffd4b0dd60fec0754324912797
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|