temporal-boost


Nametemporal-boost JSON
Version 2.0.1 PyPI version JSON
download
home_pagehttps://github.com/northpowered/temporal-boost
SummarySmall framework for Temporal development
upload_time2025-07-21 08:44:15
maintainerNone
docs_urlNone
authornorthpowered
requires_python<4.0.0,>=3.10.0
licenseMIT
keywords temporal framework development python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Temporal-boost

![social_preview](https://socialify.git.ci/northpowered/temporal-boost/image?description=1&font=Source%20Code%20Pro&logo=https%3A%2F%2Fraw.githubusercontent.com%2Ftemporalio%2Fdocumentation%2Fmain%2Fstatic%2Fimg%2Ffavicon.svg&name=1&owner=1&pattern=Brick%20Wall&theme=Light)

[![Python 3.10+](https://img.shields.io/pypi/pyversions/temporal-boost.svg?style=for-the-badge)](https://pypi.org/project/temporal-boost)
[![PyPI](https://img.shields.io/pypi/v/temporal-boost.svg?style=for-the-badge)](https://pypi.org/project/temporal-boost)
[![MIT](https://img.shields.io/pypi/l/temporalio.svg?style=for-the-badge)](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![social_preview](https://socialify.git.ci/northpowered/temporal-boost/image?description=1&font=Source%20Code%20Pro&logo=https%3A%2F%2Fraw.githubusercontent.com%2Ftemporalio%2Fdocumentation%2Fmain%2Fstatic%2Fimg%2Ffavicon.svg&name=1&owner=1&pattern=Brick%20Wall&theme=Light)\n\n[![Python 3.10+](https://img.shields.io/pypi/pyversions/temporal-boost.svg?style=for-the-badge)](https://pypi.org/project/temporal-boost)\n[![PyPI](https://img.shields.io/pypi/v/temporal-boost.svg?style=for-the-badge)](https://pypi.org/project/temporal-boost)\n[![MIT](https://img.shields.io/pypi/l/temporalio.svg?style=for-the-badge)](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"
}
        
Elapsed time: 0.68456s