Перейти к содержанию

Первый релиз

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 с разными стратегиями.
  • Группы команд - вложенные подкоманды для логичной структуры интерфейса бота.
  • И многое другое

Установка

pip install vkflow

Для максимальной производительности:

pip install vkflow[speed]

Документация, примеры и исходный код доступны на GitHub. Вопросы и предложения приветствуются в группе ВК.