Metadata-Version: 2.4
Name: aioservicekit
Version: 0.7.1
Summary: A framework for creating asynchronous services. It helps to create nanoservices (like microservices, but for microservices), control their life cycle and organize communications.
Author: Bohdan Kushnir
Maintainer: Bohdan Kushnir
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/8ByteCore8/aioservicekit
Project-URL: Documentation, https://readthedocs.org
Project-URL: Repository, https://github.com/8ByteCore8/aioservicekit.git
Project-URL: Issues, https://github.com//8ByteCore8/aioservicekit/issues
Keywords: async,asyncio,service,microservice,nanoservice
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# aioservicekit

Welcome to the documentation for `aioservicekit`.

`aioservicekit` is a Python library built on `asyncio` designed to provide a robust and structured framework for creating long-running asynchronous services, periodic tasks, and managing their lifecycles gracefully.

## Core Features

*   **Managed Services:** Define services with clear `start`, `stop`, `restart`, and `wait` lifecycles.
*   **Periodic Tasks:** Easily create tasks that run at regular intervals.
*   **Dependency Management:** Define dependencies between services, ensuring correct startup and shutdown order.
*   **Graceful Shutdown:** Integrates with OS signals (SIGINT, SIGTERM) for clean application termination via the `on_shutdown` event.
*   **Task Concurrency:** Manage groups of concurrent tasks with configurable error handling using `TaskGroup`.
*   **Pub/Sub Channels:** Distribute data asynchronously to multiple consumers using `Chanel`.
*   **Event System:** A generic event emitter/listener pattern for decoupling components.
*   **Utilities:** Helpers for running multiple services and ensuring clean application exit.

## Navigation

*   [Getting Started](./docs/getting_started.md)
*   [Services](./docs/services.md)
*   [Periodic Tasks](./docs/tasks.md)
*   [Channels (Pub/Sub)](./docs/channels.md)
*   [Events](./docs/events.md)
*   [Task Groups](./docs/task_groups.md)
*   [Utilities](./docs/utils.md)

## Installation

```bash
pip install aioservicekit
```

Ready to build robust async applications? Head over to the [Getting Started](./docs/getting_started.md) guide!
