← Все проекты
Проект / Go

rvitorper/go-bt: go-bt — минималистичные деревья поведения для Go

Библиотека для создания гибкой асинхронной логики без бесконечных циклов и блокирующих ожиданий.

Минималистичная реализация деревьев поведения на Go с акцентом на простоту, тестируемость и интеграцию с context.Context. Позволяет декларативно описывать сложную асинхронную логику для фоновых задач, игр или автоматизации.

★ 60 Go Форки 1 Issue 0 Оценка 7/10 Карточка проверена

Для кого это

Для разработчиков на Go, которые создают фоновые воркеры, игровые ИИ или системы автоматизации с сложной логикой выполнения.

Проблема / задача

Решает проблему спагетти-кода в асинхронных задачах, где смешаны проверки условий, повторные попытки, таймауты и обработка ошибок.

Как это работает

Библиотека использует модель деревьев поведения: логика строится из узлов-компонентов (последовательности, селекторы, условия, действия). Узлы возвращают три состояния: успех, выполняется или провал. Супервизор в фоне тикает с заданным интервалом, продвигая выполнение дерева без блокировки основного потока. Состояние хранится в контексте, а не в узлах, что делает деревья переиспользуемыми и тестируемыми.

Что видно по README

Минималистичная реализация деревьев поведения на Go с акцентом на простоту, тестируемость и интеграцию с context.Context. Позволяет декларативно описывать сложную асинхронную логику для фоновых задач, игр или автоматизации.

Ключевые возможности

Статусные узлы (последовательность, выбор, условия, действия)Встроенная поддержка context.Context для отмены и таймаутовНеблокирующее выполнение с кооперативной многозадачностьюВнедряемые часы для мгновенного тестирования таймаутов в юнит-тестахЗащита от паники с восстановлением в супервизоре

Технологии

GoGenericsCI/CD

Интересный факт

Можно протестировать логику с 5-минутным таймаутом за миллисекунды, подменив системные часы в контексте — это называется «тестированием с путешествием во времени».

С чего начать

  • Определите структуру-чёрную доску с состоянием вашей системы
  • Соберите дерево из готовых узлов (Sequence, Selector, Condition, Action)
  • Запустите супервизор, который будет тикать дерево в фоне с заданным интервалом

Оценка GitRadar

Удобство
7/10
Свежесть
8/10
Перспектива
7/10
Монетизация
4/10
Общая оценка
7/10

Вердикт GitRadar

Стоит попробовать, если нужен чистый и тестируемый способ организации асинхронной логики без тяжёлых фреймворков. Проект минималистичный, но продуманный.

Наблюдения по обновлениям

Проект скромный по активности (60 звёзд, 1 форк), но код чистый, README подробное, архитектура продумана. Поддерживается актуальная версия Go.

Что мы проверили

Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.

Исходный репозиторий
https://github.com/rvitorper/go-bt
Создан на GitHub
8 апреля 2026 г.
Последнее обновление репо
8 апреля 2026 г.
Последняя проверка GitRadar
8 апреля 2026 г.
Изученные файлы
README.md, go.mod, core/command.go, core/supervisor.go, core/context.go, dummy/success.go

FAQ

Что это такое?

Библиотека для создания деревьев поведения на Go — способ моделировать сложную логику выполнения через композицию узлов.

Для кого подходит?

Для разработчиков на Go, которые пишут фоновые сервисы, игровые ИИ, системы автоматизации или любую логику с состоянием и асинхронными операциями.

Источники

  • GitHub исходный код и активность
  • README описание, ссылки, стартовые материалы

Нужна помощь с rvitorper/go-bt?

Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.