Repolode
gorules

gorules/zen

Mecanismo multiplataforma de regras de negócio escrito em Rust, com bindings para Node.js, Python, Go, Java, Kotlin, .NET, iOS e Android.

Estrelas
2,080
Forks
224
Issues abertas
41
Último commit
há 18 horas

O que é?

O ZEN Engine é um mecanismo de regras de negócio open source que avalia decisões escritas em JSON portátil. O núcleo é escrito em Rust e disponibilizado por meio de bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, além de pacotes para Swift e Android, para que as mesmas regras sejam executadas de forma idêntica em diferentes plataformas. Cabe à aplicação carregar o JSON, seja do sistema de arquivos, de um banco de dados ou de uma chamada a serviço.

As decisões podem ser modeladas como grafos que combinam tabelas de decisão, switches, expressões, funções e subdecisões reutilizáveis, ou como documentos de políticas com modelos de dados tipados e tabelas. As condições usam a ZEN Expression Language, projetada para se aproximar da forma como as equipes de negócio descrevem regras. A versão 2.0 adiciona verificação estática de tipos em políticas e grafos, e compila as decisões uma vez, no momento do carregamento, antes da avaliação.

O projeto é mantido pela GoRules, que também oferece uma plataforma hospedada baseada no mecanismo. No momento, não são aceitas contribuições externas de código, exceto para documentação e testes.

Recursos principais

  • 01Bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, Swift e Android.
  • 02Decisões armazenadas como JSON portátil, executadas da mesma forma em todas as plataformas compatíveis.
  • 03Grafos visuais de decisão com tabelas de decisão, switches, expressões e subdecisões.
  • 04Documentos de políticas com modelos de dados tipados, tabelas de decisão e asserções.
  • 05Verificação estática de tipos e diagnósticos em políticas e grafos antes da execução.
  • 06Decisões pré-compiladas no carregamento para avaliação repetida.

Casos de uso

  • Transferir a lógica de preços, elegibilidade ou aprovação do código da aplicação para regras editáveis.
  • Compartilhar o mesmo conjunto de regras de negócio entre serviços de backend escritos em linguagens diferentes.
  • Executar a mesma lógica de decisão em aplicativos móveis e servidores.
  • Revisar e testar regras de negócio com especialistas de domínio antes do lançamento.

Início rápido

  1. 1

    Instale o pacote Node.js

    npm i @gorules/zen-engine
  2. 2

    Carregue um grafo de decisão JDM e avalie-o com dados de entrada

Antes de usar

  • No momento, não aceitamos contribuições, exceto documentação e testes.
  • Algumas plataformas não são compatíveis com todas as linguagens, como musl Linux para Python, Go, Java e .NET.

Tópicos

Perguntas frequentes

O que é zen?
Mecanismo multiplataforma de regras de negócio escrito em Rust, com bindings para Node.js, Python, Go, Java, Kotlin, .NET, iOS e Android. O ZEN Engine é um mecanismo de regras de negócio open source que avalia decisões escritas em JSON portátil. O núcleo é escrito em Rust e disponibilizado por meio de bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, além de pacotes para Swift e Android, para que as mesmas regras sejam executadas de forma idêntica em diferentes plataformas. Cabe à aplicação carregar o JSON, seja do sistema de arquivos, de um banco de dados ou de uma chamada a serviço.
zen é gratuito? Qual é a licença?
zen é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
zen ainda é mantido?
Manutenção ativa. O último commit de zen foi em 20 de out. de 2026.
Para que posso usar zen?
Transferir a lógica de preços, elegibilidade ou aprovação do código da aplicação para regras editáveis. Compartilhar o mesmo conjunto de regras de negócio entre serviços de backend escritos em linguagens diferentes. Executar a mesma lógica de decisão em aplicativos móveis e servidores. Revisar e testar regras de negócio com especialistas de domínio antes do lançamento.
Como instalar zen?
Instale o pacote Node.js: npm i @gorules/zen-engine Carregue um grafo de decisão JDM e avalie-o com dados de entrada
Onde consigo zen?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/gorules/zen

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados