На прошлой неделе мы выпустили FastStream 0.7 спустя почти год после 0.6.0. Скорее всего это будет последний крупный релиз перед 1.0. Но сам по себе он тоже интересен:
1️⃣ @borisalekseev принес нам MQTT брокер. Для этого ему даже пришлось написать полностью асинхронный MQTT клиент с нуля - zMQTT. Так что это не просто фича фреймворка, но и большой вклад в python комьюнити в целом.
MQTT - это самый запрашиваемый брокер со стороны международного комьюнити - его активно используют в IoT и Edge устройствах. Наверное, это самое важное расширение экосистемы FastStream, т.к. работает на совершенно новую для нас группу пользователей.
2️⃣ В этом релизе я (неожиданно для себя) дотолкал полноценную поддержку многоброкерности FastStream(broker1, broker2) - САМЫЙ СТАРЫЙ ISSUE в нашем репозитории (526, хотя сейчас мы уже около 3к)
Я не закрывал его так долго потому что у пользователей все время был обходной путь, как добиться такого же поведения самостоятельно. Ну и сама фича хоть и простая, но довольно объемная - нужно проверить миллион крайних случаев и работу всех подсистем фреймворка. Так что последние 2 года я медленно, но планомерно рефакторил все подсистемы с учетом этой фичи в будущем - а в 0.7 просто сделал последний рывок.
Мультиброкеры были одним из главных стоп-факторов для выхода 1.0 версии. Теперь мы планируем дотолкать 1.0 к 18 сентября (день рождения фреймворка - нам 3 года)
3️⃣ добавлена поддержка Redis Cluster - RedisClusterBroker. Спасибо нашему новому мейнтейнеру RedisBroker'а @powersemmi за эту фичу (он еще и RustStream пилит). Кстати, фича была приоритизирована не просто так - запрос на нее пришел от Octopus Energy. Теперь у нас +1 крупный пользователь в UK
Помимо прочего мы удалили все deprecated API, которые тащили еще со времен 0.5.
Участие в релизе приняли целых 19 новых контрибуторов! Это лишнее подтверждение, что FastStream - не мой личный, а по-настоящему community-driven проект.
Так что сейчас фреймворк полностью чист от legacy и фактически готов к релизу 1.0. Можно было бы дотолкать его за пару недель, но я ленивый🌚
Полное описание релиза: https://github.com/ag2ai/faststream/releases/tag/0.7.0
Если у вас есть какие-то пожелания по фичам или вы хотите предложить правки по API - самое время. Мы как раз собираем фича-план на 1.0