Repolode
aidenybai

aidenybai/tla-ts

Implementación en TypeScript del intérprete y model checker de TLA+, como reemplazo directo de TLC que se ejecuta en navegadores, Node y Bun.

Alternativa open source a:TLC

Estrellas
232
Forks
9
Issues abiertos
9
Último commit
anteayer

¿Qué es?

tla-ts es un intérprete y model checker de TLA+ escrito en TypeScript. Está pensado como reemplazo directo de TLC, el model checker de referencia para las especificaciones TLA+, escrito en Java y que requiere la JVM. Como tla-ts se ejecuta dondequiera que se ejecute JavaScript, incluidos los navegadores, Node y Bun, permite verificar modelos formales sin instalar Java.

El proyecto también verifica pruebas de TLAPS, por lo que permite comprobar obligaciones de prueba sin instalar tlapm. Ofrece una API de JavaScript con `check`, `prove`, `parseModule` y `parseConfig`, además de una interfaz de línea de comandos que acepta las opciones de TLC y una interfaz al estilo de tlapm. Los errores se notifican mediante clases tipadas para sintaxis, configuración, evaluación y construcciones no compatibles.

El repositorio presenta benchmarks comparativos con TLC, con mejoras de velocidad de aproximadamente 1,1× a 2,4×, según la especificación y el número de workers. Incluye un entorno interactivo para el navegador y una suite de conformidad que compara los resultados registrados por TLC.

Funciones clave

  • 01Ejecuta el model checking de TLA+ en navegadores, Node y Bun sin la JVM.
  • 02Verifica obligaciones de prueba de TLAPS sin instalar tlapm.
  • 03Ofrece `check`, `prove` y funciones de análisis sintáctico mediante una API de JavaScript.
  • 04Incluye una interfaz de línea de comandos que acepta opciones de TLC y comandos al estilo de tlapm.
  • 05Admite varios hilos de trabajo para explorar estados en paralelo.

Casos de uso

  • Verificar modelos de especificaciones de protocolos distribuidos desde un entorno Node o un navegador.
  • Ejecutar verificaciones de TLA+ en un pipeline de CI basado en JavaScript, sin configurar Java.
  • Compartir un entorno interactivo de TLA+ en el navegador para enseñar o hacer demostraciones.
  • Verificar pruebas de TLAPS en proyectos que ya usan una cadena de herramientas de Node.

Inicio rápido

  1. 1

    Instala el paquete desde npm

    npm install tla-ts
  2. 2

    Comprueba una especificación TLA+ desde la línea de comandos

    npx tla-ts Spec.tla

Antes de usarlo

  • Es un proyecto en una fase temprana y su comunidad es relativamente pequeña (191 estrellas).

Temas

Preguntas frecuentes

¿Qué es tla-ts?
Implementación en TypeScript del intérprete y model checker de TLA+, como reemplazo directo de TLC que se ejecuta en navegadores, Node y Bun. tla-ts es un intérprete y model checker de TLA+ escrito en TypeScript. Está pensado como reemplazo directo de TLC, el model checker de referencia para las especificaciones TLA+, escrito en Java y que requiere la JVM. Como tla-ts se ejecuta dondequiera que se ejecute JavaScript, incluidos los navegadores, Node y Bun, permite verificar modelos formales sin instalar Java.
¿tla-ts es gratuito? ¿Qué licencia tiene?
tla-ts es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿tla-ts sigue mantenido?
Mantenimiento activo. El último commit de tla-ts fue el 5 nov 2026.
¿Para qué puedo usar tla-ts?
Verificar modelos de especificaciones de protocolos distribuidos desde un entorno Node o un navegador. Ejecutar verificaciones de TLA+ en un pipeline de CI basado en JavaScript, sin configurar Java. Compartir un entorno interactivo de TLA+ en el navegador para enseñar o hacer demostraciones. Verificar pruebas de TLAPS en proyectos que ya usan una cadena de herramientas de Node.
¿Cómo se instala tla-ts?
Instala el paquete desde npm: npm install tla-ts Comprueba una especificación TLA+ desde la línea de comandos: npx tla-ts Spec.tla
¿Dónde consigo tla-ts?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/aidenybai/tla-ts

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados