Первый релиз¶
VKFlow 0.0.1 увидел свет. Это масштабно переработанный наследник VKQuick - асинхронный фреймворк для создания ботов ВКонтакте на Python.
Зачем ещё один фреймворк¶
Среди существующих инструментов для разработки ботов ВК сложилась странная ситуация: чтобы принять аргументы команды, приходилось описывать их прямо в имени или шаблоне команды через специальные вставки. Это работало, но выглядело неестественно для Python-разработчика, привыкшего к выразительности языка.
VKQuick когда-то предложил другой подход - аргументы команды описываются как параметры функции с аннотациями типов. Просто, понятно, без магических строк. VKFlow продолжает эту идею, но для актуальных версий Pytho: переработанная архитектура, полная асинхронность, поддержка Python 3.11+ и современные практики разработки.
Начать - просто¶
VKFlow не требует долгой настройки. Установите пакет, опишите команду как обычную функцию, запустите бота. Аргументы команд парсятся из аннотаций типов автоматически - фреймворк сам разберётся, что пользователь передал int, str или упоминание другого пользователя.
Минимальный порог входа - одна из ключевых целей проекта. При этом под капотом достаточно инструментов, чтобы не упереться в потолок на сложных задачах.
Модульность¶
Когда бот перерастает десяток команд, держать всё в одном файле становится неудобно. Cog-система решает эту проблему: команды группируются в модули, каждый со своим жизненным циклом. Коги можно загружать и выгружать на лету, они поддерживают собственные проверки доступа, перехватчики вызовов и обработку ошибок.
Это не просто способ разнести код по файлам - это полноценная модульная архитектура. Каждый Cog может иметь фоновые задачи, инициализироваться при загрузке и корректно завершать работу при выгрузке.
Аддоны и расширяемость¶
VKFlow спроектирован с расчётом на расширение. Система аддонов позволяет подключать дополнительную функциональность без изменения ядра фреймворка. Аддоны обнаруживаются автоматически через entry_points, что делает их подключение максимально простым.
Уже сейчас доступны два встроенных аддона:
- AutoDoc - автоматическая генерация HTML-документации по командам бота. Описания, аргументы, проверки доступа - всё собирается в читаемую страницу без ручной работы.
- FastAPI - интеграция с веб-фреймворком для работы через Callback API, с полноценным dependency injection.
Что ещё есть¶
Помимо перечисленного, VKFlow предлагает:
- Интерактивный UI - клавиатуры, карусели, View с callback-кнопками для построения интерфейсов прямо в чате.
- Систему проверок - встроенные и кастомные check-декораторы, rate-limiting с разными стратегиями.
- Группы команд - вложенные подкоманды для логичной структуры интерфейса бота.
- И многое другое
Установка¶
Для максимальной производительности:
Документация, примеры и исходный код доступны на GitHub. Вопросы и предложения приветствуются в группе ВК.