Metadata-Version: 2.3
Name: amgi-aiokafka
Version: 0.25.1
Summary: AMGI Kafka Server
Author: jack.burridge
Author-email: jack.burridge <jack.burridge@mail.com>
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: aiokafka>=0.12
Requires-Dist: amgi-common==0.25.1
Requires-Dist: amgi-types==0.25.1
Requires-Python: >=3.10
Project-URL: Changelog, https://github.com/asyncfast/amgi/blob/main/CHANGELOG.md
Project-URL: Homepage, https://github.com/asyncfast/amgi/tree/main/packages/amgi-aiokafka
Project-URL: Issues, https://github.com/asyncfast/amgi/issues/
Project-URL: Repository, https://github.com/asyncfast/amgi/
Description-Content-Type: text/markdown

# amgi-aiokafka

amgi-aiokafka is an [AMGI](https://amgi.readthedocs.io/en/latest/) compatible server to run AMGI applications against
[Kafka](https://kafka.apache.org/).

## Installation

```
pip install amgi-aiokafka==0.25.1
```

## Example

This example uses [AsyncFast](https://pypi.org/project/asyncfast/):

```python
from dataclasses import dataclass

from amgi_aiokafka import run
from asyncfast import AsyncFast

app = AsyncFast()


@dataclass
class Order:
    item_ids: list[str]


@app.channel("order-topic")
async def order_topic(order: Order) -> None:
    # Makes an order
    ...


if __name__ == "__main__":
    run(app, "order-topic")
```

Or the application could be run via the commandline:

```commandline
asyncfast run amgi-aiokafka main:app order-topic
```

## Contact

For questions or suggestions, please contact [jack.burridge@mail.com](mailto:jack.burridge@mail.com).

## License

Copyright 2025 AMGI
