Warp es un entorno de desarrollo agéntico basado en la terminal, con un agente de programación integrado o compatibilidad con tus propios agentes de CLI.
gorules/zen
Motor multiplataforma de reglas de negocio escrito en Rust, con bindings para Node.js, Python, Go, Java, Kotlin, .NET, iOS y Android.
- Estrellas
- 2,080
- Forks
- 224
- Issues abiertos
- 41
- Último commit
- hace 13 horas
¿Qué es?
ZEN Engine es un motor de reglas de negocio de código abierto que evalúa decisiones escritas como JSON portable. El núcleo está escrito en Rust y se ofrece mediante bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, además de paquetes para Swift y Android, de modo que las mismas reglas se ejecutan de forma idéntica en distintas plataformas. La aplicación se encarga de cargar el JSON, ya sea desde el sistema de archivos, una base de datos o una llamada a un servicio.
Las decisiones se pueden modelar como grafos que combinan tablas de decisión, condiciones switch, expresiones, funciones y subdecisiones reutilizables, o como documentos de políticas con modelos de datos tipados y tablas. Las condiciones usan ZEN Expression Language, diseñado para que se parezca a la forma en que los equipos de negocio describen las reglas. La versión 2.0 añade comprobación estática de tipos en políticas y grafos, y compila las decisiones una vez al cargarlas, antes de evaluarlas.
GoRules mantiene el proyecto y también ofrece una plataforma alojada basada en el motor. Por el momento no se aceptan contribuciones de código externas, salvo las relacionadas con documentación y pruebas.
Funciones clave
- 01Bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, Swift y Android.
- 02Decisiones almacenadas como JSON portable que se ejecutan igual en todas las plataformas compatibles.
- 03Grafos visuales de decisiones con tablas de decisión, condiciones switch, expresiones y subdecisiones.
- 04Documentos de políticas con modelos de datos tipados, tablas de decisión y aserciones.
- 05Comprobación estática de tipos y diagnósticos en políticas y grafos antes de la ejecución.
- 06Decisiones precompiladas al cargarlas para evaluarlas repetidamente.
Casos de uso
- Trasladar la lógica de precios, elegibilidad o aprobaciones fuera del código de la aplicación y convertirla en reglas editables.
- Compartir un mismo conjunto de reglas de negocio entre servicios backend escritos en distintos lenguajes.
- Ejecutar la misma lógica de decisión en aplicaciones móviles y servidores.
- Revisar y probar las reglas de negocio con expertos del dominio antes del lanzamiento.
Inicio rápido
- 1
Instala el paquete de Node.js
npm i @gorules/zen-engine - 2
Carga un grafo de decisión JDM y evalúalo con datos de entrada
Antes de usarlo
- Por el momento, no se aceptan contribuciones, salvo documentación y pruebas.
- Algunas plataformas no son compatibles con todos los lenguajes; por ejemplo, musl Linux no es compatible con Python, Go, Java y .NET.
Temas
Preguntas frecuentes
- ¿Qué es zen?
- Motor multiplataforma de reglas de negocio escrito en Rust, con bindings para Node.js, Python, Go, Java, Kotlin, .NET, iOS y Android. ZEN Engine es un motor de reglas de negocio de código abierto que evalúa decisiones escritas como JSON portable. El núcleo está escrito en Rust y se ofrece mediante bindings nativos para Node.js, Python, Go, Java, Kotlin, .NET, además de paquetes para Swift y Android, de modo que las mismas reglas se ejecutan de forma idéntica en distintas plataformas. La aplicación se encarga de cargar el JSON, ya sea desde el sistema de archivos, una base de datos o una llamada a un servicio.
- ¿zen es gratuito? ¿Qué licencia tiene?
- zen es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿zen sigue mantenido?
- Mantenimiento activo. El último commit de zen fue el 20 oct 2026.
- ¿Para qué puedo usar zen?
- Trasladar la lógica de precios, elegibilidad o aprobaciones fuera del código de la aplicación y convertirla en reglas editables. Compartir un mismo conjunto de reglas de negocio entre servicios backend escritos en distintos lenguajes. Ejecutar la misma lógica de decisión en aplicaciones móviles y servidores. Revisar y probar las reglas de negocio con expertos del dominio antes del lanzamiento.
- ¿Cómo se instala zen?
- Instala el paquete de Node.js: npm i @gorules/zen-engine Carga un grafo de decisión JDM y evalúalo con datos de entrada
- ¿Dónde consigo zen?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/gorules/zen
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework de Rust para crear aplicaciones web, de escritorio y móviles desde una sola base de código, con componentes similares a los de React y signals.
Generador incremental de parsers y biblioteca de análisis sintáctico que crea árboles de sintaxis concretos y los actualiza a medida que se editan los archivos fuente.
Un intérprete de Python 3 escrito en Rust que ejecuta código Python sin bindings de CPython y ofrece compatibilidad con WebAssembly e integración en aplicaciones.
Un motor de juegos retro para Python que permite crear juegos de pixel art con una paleta fija y una pantalla de baja resolución.
Procesador de texto de código abierto, desarrollado desde cero en Rust puro, que lee y escribe archivos .docx y funciona en escritorio y en el navegador.