Коробка с питоном
Rapidy - новый web-фреимворк на базе aiohttp
Недавно заметил, что в чатиках разгоняют про ещё один новый web-фреимворк, только уже построенный на aiohttp. Зачем, конечно, в 2025 году использовать aiohttp - вопрос сложный, но автор отвечает на него так - это для любителей aiohttp. Ну раз так, то ладно.
Вообще, когда я писал сервисы на aiohttp, мне всегда хотелось иметь работу с pydantic как у FastAPI. Можно сказать, автор воплотил одну из моих идей.
Что под капотом из того, что мне приглянулось?
- Валидация и сериализация как в хендлерах, так и в middleware при помощи полюбившегося всем Pydantic.
- Нативная интеграция с dishka.
- Декларативные контроллеры в виде классов с наследованием параметров - вкусовщина ещё та, но мне нравится:
@controller('/')
class UserController:
@get('/{user_id}')
async def get_by_id(self, user_id: str = PathParam()) -> dict[str, str]:
return {'user_id': user_id}
@get()
async def get_all_users(self) -> list[dict[str, str]]:
return [{'name': 'John'}, {'name': 'Felix'}]
- Ну и по стандарту, всё что уже и так есть в aiohttp.
А обещают нам:
- Генерацию OpenAPI - очень хотелось бы видеть.
- HTTP клиент обмазанный Pydantic - видимо чтобы быстренько клепать интеграции с http-сервисами.
- И, самое интересное - поддержку GRPC. Вот тут очень стало интересно, как это будет выглядеть.
Всё это, конечно, звучит круто, но у фреимворка есть самый большой недостаток, который вытекает из самого aiohttp - нету asgi. Мне кажется, что если его исправить, то ему можно будет даже подвинуться между легким FastAPI и уже ставшим монструозным Litestar.
Поэтому, пока что для меня - это aiohttp на стероидах. Удобный, легкий, слегка фичастый, подведенный к стандарту разработки 2025 года.
Github | Документация
#библиотека
9 · 933 ·