# Temporal-boost

[](https://pypi.org/project/temporal-boost)
[](https://pypi.org/project/temporal-boost)
[](LICENSE)
Documentation is available [on GH pages](https://northpowered.github.io/temporal-boost/)
Small framework based on [temporalio/sdk-python](https://github.com/temporalio/sdk-python) - create [Temporal](https://temporal.io/) microservices as fast as you can
# Requirements
* Python >= 3.10
# Features
* Create Temporal workers with FastAPI-style
* Add CRON workers with one code line
* Append ASGI (ex. FastAPI) workers like Temporal
* Auto documentation with web UI (like SwaggerUI in FastAPI)
* Build-in logger and OTLP tracer
# Quick start
```python
from temporal_boost import BoostApp
from temporalio import activity
from temporalio import workflow
# Create `BoostApp` object
app = BoostApp()
# Describe your activities/workflows
@activity.defn(name="test_boost_activity_1")
async def test_boost_activity_1(foo: str, bar: str) -> str:
app.logger.info("This is built-in logger")
return f"1_{foo}{bar}"
@activity.defn(name="test_boost_activity_2")
async def test_boost_activity_2(foo: str, bar: str) -> str:
return f"2_{foo}{bar}"
@workflow.defn(name="TestCronWorkflow", sandboxed=False)
class TestCronWorkflow:
@workflow.run
async def run(self) -> None:
app.logger.warning("With is cron workflow")
return None
# Add async workers to your app (FastAPI style)
app.add_worker(
"worker_1",
"task_q_1",
activities=[test_boost_activity_1],
metrics_endpoint="0.0.0.0:9000"
)
app.add_worker(
"worker_2",
"task_q_2",
activities=[test_boost_activity_2]
)
# Example of CRON worker
app.add_worker(
"test_cron",
"task_q_3",
workflows=[TestCronWorkflow],
cron_schedule="* * * * *",
cron_runner=TestCronWorkflow.run
)
# Run your app and start workers with CLI
app.run()
```
```bash
python3 main.py
# Usage: main.py [OPTIONS] COMMAND [ARGS]...
# Options:
# --install-completion [bash|zsh|fish|powershell|pwsh]
# Install completion for the specified shell.
# --show-completion [bash|zsh|fish|powershell|pwsh]
# Show completion for the specified shell, to
# copy it or customize the installation.
# --help Show this message and exit.
# Commands:
# cron
# run
```
```bash
python3 main.py run
# Usage: main.py run [OPTIONS] COMMAND [ARGS]...
# Options:
# --help Show this message and exit.
# Commands:
# all
# test_cron
# worker_1
# worker_2
```
```bash
python3 main.py run worker_1
# 2023-09-20T21:25:12 | INFO | Worker worker_1 was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker worker_2 was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker test_cron was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker worker_1 started on task_q_1 queue
```
Raw data
{
"_id": null,
"home_page": "https://github.com/northpowered/temporal-boost",
"name": "temporal-boost",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0.0,>=3.10.0",
"maintainer_email": null,
"keywords": "temporal, framework, development, python",
"author": "northpowered",
"author_email": "you@example.com",
"download_url": "https://files.pythonhosted.org/packages/65/48/b4f88f93fcf6ab518dedf3e9d28a953d7b8dbcb8c08e689cda7813e64517/temporal_boost-2.0.1.tar.gz",
"platform": null,
"description": "# Temporal-boost\n\n\n\n[](https://pypi.org/project/temporal-boost)\n[](https://pypi.org/project/temporal-boost)\n[](LICENSE)\n\nDocumentation is available [on GH pages](https://northpowered.github.io/temporal-boost/)\n\nSmall framework based on [temporalio/sdk-python](https://github.com/temporalio/sdk-python) - create [Temporal](https://temporal.io/) microservices as fast as you can\n\n# Requirements\n\n* Python >= 3.10\n\n# Features\n\n* Create Temporal workers with FastAPI-style\n* Add CRON workers with one code line\n* Append ASGI (ex. FastAPI) workers like Temporal\n* Auto documentation with web UI (like SwaggerUI in FastAPI)\n* Build-in logger and OTLP tracer\n\n# Quick start\n```python\nfrom temporal_boost import BoostApp\nfrom temporalio import activity\nfrom temporalio import workflow\n\n# Create `BoostApp` object\napp = BoostApp()\n\n\n# Describe your activities/workflows\n@activity.defn(name=\"test_boost_activity_1\")\nasync def test_boost_activity_1(foo: str, bar: str) -> str:\n app.logger.info(\"This is built-in logger\")\n return f\"1_{foo}{bar}\"\n\n\n@activity.defn(name=\"test_boost_activity_2\")\nasync def test_boost_activity_2(foo: str, bar: str) -> str:\n return f\"2_{foo}{bar}\"\n\n\n@workflow.defn(name=\"TestCronWorkflow\", sandboxed=False)\nclass TestCronWorkflow:\n @workflow.run\n async def run(self) -> None:\n app.logger.warning(\"With is cron workflow\")\n return None\n\n\n# Add async workers to your app (FastAPI style)\n\napp.add_worker(\n \"worker_1\",\n \"task_q_1\",\n activities=[test_boost_activity_1],\n metrics_endpoint=\"0.0.0.0:9000\"\n)\n\napp.add_worker(\n \"worker_2\",\n \"task_q_2\",\n activities=[test_boost_activity_2]\n)\n\n# Example of CRON worker\napp.add_worker(\n \"test_cron\",\n \"task_q_3\",\n workflows=[TestCronWorkflow],\n cron_schedule=\"* * * * *\",\n cron_runner=TestCronWorkflow.run\n)\n\n# Run your app and start workers with CLI\napp.run()\n```\n\n```bash\npython3 main.py\n\n# Usage: main.py [OPTIONS] COMMAND [ARGS]...\n\n# Options:\n# --install-completion [bash|zsh|fish|powershell|pwsh]\n# Install completion for the specified shell.\n# --show-completion [bash|zsh|fish|powershell|pwsh]\n# Show completion for the specified shell, to\n# copy it or customize the installation.\n# --help Show this message and exit.\n\n# Commands:\n# cron\n# run\n\n```\n\n```bash\npython3 main.py run\n\n# Usage: main.py run [OPTIONS] COMMAND [ARGS]...\n\n# Options:\n# --help Show this message and exit.\n\n# Commands:\n# all\n# test_cron\n# worker_1\n# worker_2\n```\n\n```bash\npython3 main.py run worker_1\n\n# 2023-09-20T21:25:12 | INFO | Worker worker_1 was registered in CLI\n# 2023-09-20T21:25:12 | INFO | Worker worker_2 was registered in CLI\n# 2023-09-20T21:25:12 | INFO | Worker test_cron was registered in CLI\n# 2023-09-20T21:25:12 | INFO | Worker worker_1 started on task_q_1 queue\n\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Small framework for Temporal development",
"version": "2.0.1",
"project_urls": {
"Homepage": "https://github.com/northpowered/temporal-boost",
"Repository": "https://github.com/northpowered/temporal-boost"
},
"split_keywords": [
"temporal",
" framework",
" development",
" python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "39b1a6073b7dc77df13bd56f5826c5c298a5af2dac170bcf46f42d5fe3c101bf",
"md5": "3c6b852e0531bc7b38dd2ade071afd87",
"sha256": "996a4155de987f73743ecbf2c32eab83069ac3e667ecc840c169ff055262c160"
},
"downloads": -1,
"filename": "temporal_boost-2.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3c6b852e0531bc7b38dd2ade071afd87",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.10.0",
"size": 20639,
"upload_time": "2025-07-21T08:44:14",
"upload_time_iso_8601": "2025-07-21T08:44:14.451541Z",
"url": "https://files.pythonhosted.org/packages/39/b1/a6073b7dc77df13bd56f5826c5c298a5af2dac170bcf46f42d5fe3c101bf/temporal_boost-2.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6548b4f88f93fcf6ab518dedf3e9d28a953d7b8dbcb8c08e689cda7813e64517",
"md5": "6303a3e08f86ec4c503b22b982a021ba",
"sha256": "553b7060ff4f962aeaf0f05ecdec31a9d57a225f0f6fe6f64e080acb949dfea9"
},
"downloads": -1,
"filename": "temporal_boost-2.0.1.tar.gz",
"has_sig": false,
"md5_digest": "6303a3e08f86ec4c503b22b982a021ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.10.0",
"size": 14653,
"upload_time": "2025-07-21T08:44:15",
"upload_time_iso_8601": "2025-07-21T08:44:15.434262Z",
"url": "https://files.pythonhosted.org/packages/65/48/b4f88f93fcf6ab518dedf3e9d28a953d7b8dbcb8c08e689cda7813e64517/temporal_boost-2.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 08:44:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "northpowered",
"github_project": "temporal-boost",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "temporal-boost"
}