Что это такое?
Библиотека для создания деревьев поведения на Go — способ моделировать сложную логику выполнения через композицию узлов.
Минималистичная реализация деревьев поведения на Go с акцентом на простоту, тестируемость и интеграцию с context.Context. Позволяет декларативно описывать сложную асинхронную логику для фоновых задач, игр или автоматизации.
Для разработчиков на Go, которые создают фоновые воркеры, игровые ИИ или системы автоматизации с сложной логикой выполнения.
Решает проблему спагетти-кода в асинхронных задачах, где смешаны проверки условий, повторные попытки, таймауты и обработка ошибок.
Библиотека использует модель деревьев поведения: логика строится из узлов-компонентов (последовательности, селекторы, условия, действия). Узлы возвращают три состояния: успех, выполняется или провал. Супервизор в фоне тикает с заданным интервалом, продвигая выполнение дерева без блокировки основного потока. Состояние хранится в контексте, а не в узлах, что делает деревья переиспользуемыми и тестируемыми.
Минималистичная реализация деревьев поведения на Go с акцентом на простоту, тестируемость и интеграцию с context.Context. Позволяет декларативно описывать сложную асинхронную логику для фоновых задач, игр или автоматизации.
Можно протестировать логику с 5-минутным таймаутом за миллисекунды, подменив системные часы в контексте — это называется «тестированием с путешествием во времени».
Стоит попробовать, если нужен чистый и тестируемый способ организации асинхронной логики без тяжёлых фреймворков. Проект минималистичный, но продуманный.
Проект скромный по активности (60 звёзд, 1 форк), но код чистый, README подробное, архитектура продумана. Поддерживается актуальная версия Go.
Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.
Библиотека для создания деревьев поведения на Go — способ моделировать сложную логику выполнения через композицию узлов.
Для разработчиков на Go, которые пишут фоновые сервисы, игровые ИИ, системы автоматизации или любую логику с состоянием и асинхронными операциями.
Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.