Skip to content

asyncfast/amgi

Repository files navigation

AMGI

Tests codecov

AMGI (Asynchronous Messaging Gateway Interface) is the spiritual sibling of ASGI. While the focus of ASGI is HTTP, the focus of AMGI is event-based applications.

This repository contains multiple AMGI implementations, as well as a typed microframework, AsyncFast, in the spirit of FastAPI it attempts to make typed asynchronous APIs easy to develop.

Core Aims

Core aims of both AMGI and AsyncFast:

  • Portable: Following AMGI should allow for implementations of any protocol, applications should be able to run anywhere regardless of compute. Running in Lambda should be no more difficult than running on EC2

  • Standards-based: Based on AsyncAPI, and JSON Schema. The framework should allow for easy documentation generation

  • Clean Implementation: Each protocol should be implemented well; this means easy to use, and as optimal as possible

Documentation

Servers

At the moment there are base implementations for the following protocols, these are all working AMGI servers:

Kafka: amgi-aiokafka is a basic Kafka sever implementation

MQTT: amgi-paho-mqtt is a basic MQTT sever implementation

Redis: amgi-redis is a basic Redis server implementation, soon with support for Redis Streams

SQS: amgi-aiobotocore contains a basic SQS sever implementation. amgi-sqs-event-source-mapping allows you to run an application in Lambda, with it translating the SQS Lambda event to the necessary AMGI calls

Contact

For questions or suggestions, please contact jack.burridge@mail.com.

Packages

No packages published

Languages