Repolode
gorules

gorules/zen

Кроссплатформенный механизм бизнес-правил на Rust с привязками для Node.js, Python, Go, Java, Kotlin, .NET, iOS и Android.

Звёзды
2,080
Форки
224
Открытые issues
41
Последний коммит
18 часов назад

Что это?

ZEN Engine — это движок бизнес-правил с открытым исходным кодом, который обрабатывает решения, записанные в переносимом формате JSON. Его ядро написано на Rust и доступно через нативные привязки для Node.js, Python, Go, Java, Kotlin, .NET, а также пакеты для Swift и Android, поэтому одни и те же правила одинаково работают на разных платформах. Приложение само отвечает за загрузку JSON — из файловой системы, базы данных или в ответ на вызов сервиса.

Решения можно представлять в виде графов, объединяющих таблицы решений, переключатели, выражения, функции и повторно используемые подрешения, либо в виде документов политик с типизированными моделями данных и таблицами. В условиях используется ZEN Expression Language, синтаксис которого приближен к тому, как бизнес-команды описывают правила. В версии 2.0 появилась статическая проверка типов для политик и графов; решения компилируются один раз при загрузке, до начала обработки.

Проект поддерживает GoRules, которая также предлагает размещённую платформу на базе движка. Внешние вклады в код сейчас не принимаются, за исключением документации и тестов.

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

  • 01Нативные привязки для Node.js, Python, Go, Java, Kotlin, .NET, Swift и Android.
  • 02Решения в переносимом формате JSON, которые одинаково работают на всех поддерживаемых платформах.
  • 03Визуальные графы решений с таблицами решений, переключателями, выражениями и подрешениями.
  • 04Документы политик с типизированными моделями данных, таблицами решений и утверждениями.
  • 05Статическая проверка типов и диагностика политик и графов до выполнения.
  • 06Предварительная компиляция решений при загрузке для повторной обработки.

Сценарии использования

  • Перенос логики ценообразования, проверки соответствия требованиям или одобрения из кода приложения в редактируемые правила.
  • Использование одного набора бизнес-правил в серверных службах, написанных на разных языках.
  • Выполнение одной и той же логики принятия решений в мобильных приложениях и на серверах.
  • Проверка и тестирование бизнес-правил вместе с экспертами предметной области до выпуска.

Быстрый старт

  1. 1

    Установите пакет Node.js

    npm i @gorules/zen-engine
  2. 2

    Загрузите граф решений JDM и оцените его с входными данными

Что важно знать

  • В настоящее время мы не принимаем вклад, за исключением документации и тестов.
  • Некоторые платформы поддерживаются не для всех языков: например, musl Linux не поддерживается для Python, Go, Java и .NET.

Темы

Частые вопросы

Что такое zen?
Кроссплатформенный механизм бизнес-правил на Rust с привязками для Node.js, Python, Go, Java, Kotlin, .NET, iOS и Android. ZEN Engine — это движок бизнес-правил с открытым исходным кодом, который обрабатывает решения, записанные в переносимом формате JSON. Его ядро написано на Rust и доступно через нативные привязки для Node.js, Python, Go, Java, Kotlin, .NET, а также пакеты для Swift и Android, поэтому одни и те же правила одинаково работают на разных платформах. Приложение само отвечает за загрузку JSON — из файловой системы, базы данных или в ответ на вызов сервиса.
zen можно использовать бесплатно? Какая у него лицензия?
zen распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
zen всё ещё поддерживается?
Активно поддерживается. Последний коммит в zen — 20 окт. 2026 г..
Для чего можно использовать zen?
Перенос логики ценообразования, проверки соответствия требованиям или одобрения из кода приложения в редактируемые правила. Использование одного набора бизнес-правил в серверных службах, написанных на разных языках. Выполнение одной и той же логики принятия решений в мобильных приложениях и на серверах. Проверка и тестирование бизнес-правил вместе с экспертами предметной области до выпуска.
Как установить zen?
Установите пакет Node.js: npm i @gorules/zen-engine Загрузите граф решений JDM и оцените его с входными данными
Где скачать zen?
Исходный код и инструкции по установке — на GitHub: https://github.com/gorules/zen

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Фреймворк на Rust для создания веб-, десктопных и мобильных приложений на единой кодовой базе с компонентами и сигналами в духе React.

39,5 тыс.1,9 тыс.RustApache-2.0Обновлён 4 дня назад