FastStream — это асинхронный Python-фреймворк для создания событийных приложений. Он объединяет в себе интеграцию с брокерами сообщений, внедрение зависимостей, валидацию, утилиты для тестирования и генерацию документации AsyncAPI в едином инструментарии. Это сокращает объем шаблонного кода, не скрывая при этом возможности базового брокера. Библиотека имеет 5277 звезд на GitHub и распространяется под лицензией Apache-2.0.
Ключевые возможности
- Поддержка множества брокеров: FastStream предоставляет единый API для работы с Kafka, RabbitMQ, NATS, Redis и MQTT, сохраняя при этом доступ к нативным функциям брокеров.
- Встроенная сериализация и валидация: Использует возможности Pydantic или Msgspec для сериализации и валидации входящих сообщений, что упрощает работу со структурированными данными.
- Автоматическая генерация документации: Автоматически создает документацию в формате AsyncAPI, что упрощает интеграцию сервисов.
- Система внедрения зависимостей: Эффективно управляет зависимостями сервисов с помощью встроенной системы внедрения зависимостей, аналогичной FastAPI Depends.
- Утилиты для тестирования: Поддерживает in-memory тесты с использованием TestBroker, что ускоряет CI/CD пайплайны.
- Интеграция с HTTP-фреймворками: Полностью совместим с любыми HTTP-фреймворками, включая специальный плагин для FastAPI.

Когда пригодится
FastStream упрощает процесс написания производителей и потребителей для очередей сообщений, автоматически обрабатывая парсинг, сетевое взаимодействие и генерацию документации. Это делает создание потоковых микросервисов более доступным. Фреймворк разработан с учетом потребностей начинающих разработчиков, упрощая их работу, но при этом оставляя возможности для более сложных сценариев использования.
Библиотека является подходящим выбором для создания современных, ориентированных на данные микросервисов, где требуется эффективная обработка потоковых данных, интеграция с различными брокерами сообщений и автоматическая генерация документации для упрощения взаимодействия между командами.
Требования и особенности установки
FastStream работает на Linux, macOS, Windows и большинстве Unix-подобных операционных систем. Установка производится через pip, при этом необходимо указывать конкретный брокер в квадратных скобках, например, pip install 'faststream[kafka]'. По умолчанию используется PydanticV2, но поддерживается и PydanticV1.