Repolode
aidenybai

aidenybai/tla-ts

用 TypeScript 实现的 TLA+ 解释器与模型检查器,可替代基于 Java 的 TLC,在浏览器、Node 和 Bun 中运行。

可替代:TLC

Star
232
Fork
9
未关闭 Issue
9
最近提交
前天

这是什么?

tla-ts 是一个用 TypeScript 编写的 TLA+ 解释器和模型检查器,目标是作为 TLC 的直接替代品。TLC 是 TLA+ 的参考模型检查器,使用 Java 编写并依赖 JVM。tla-ts 可以在浏览器、Node 和 Bun 等任何能运行 JavaScript 的环境中使用,无需安装 Java 即可检查形式化模型。

项目还支持检查 TLAPS 证明,无需安装 tlapm 即可验证证明义务。它提供 `check`、`prove`、`parseModule`、`parseConfig` 等 JavaScript API,并附带命令行工具,既支持 TLC 的选项,也支持 tlapm 风格的调用方式。语法、配置、求值及不支持的语法结构等错误都以明确的错误类型返回。

据仓库中的基准测试,在单 worker 下相比 TLC 约快 2 倍左右,多 worker 场景下加速比有所不同。项目还提供在线 playground,以及与 TLC 记录结果对比的一致性测试套件。

核心功能

  • 01无需 JVM,可在浏览器、Node 和 Bun 中运行 TLA+ 模型检查。
  • 02无需安装 tlapm 即可检查 TLAPS 证明义务。
  • 03通过 JavaScript API 提供 `check`、`prove` 及解析函数。
  • 04命令行工具兼容 TLC 选项和 tlapm 风格的命令。
  • 05支持多个 worker 线程并行探索状态空间。

适用场景

  • 在 Node 或浏览器环境中对分布式协议规约进行模型检查。
  • 在基于 JavaScript 的 CI 流水线中运行 TLA+ 检查,无需配置 Java。
  • 在浏览器中提供交互式 TLA+ 演示环境,用于教学或展示。
  • 在已使用 Node 工具链的项目中检查 TLAPS 证明。

快速上手

  1. 1

    从 npm 安装该包

    npm install tla-ts
  2. 2

    在命令行中检查 TLA+ 规范

    npx tla-ts Spec.tla

使用前须知

  • 项目处于早期阶段,社区规模相对较小(191 星)。

标签

常见问题

tla-ts 是什么?
用 TypeScript 实现的 TLA+ 解释器与模型检查器,可替代基于 Java 的 TLC,在浏览器、Node 和 Bun 中运行。 tla-ts 是一个用 TypeScript 编写的 TLA+ 解释器和模型检查器,目标是作为 TLC 的直接替代品。TLC 是 TLA+ 的参考模型检查器,使用 Java 编写并依赖 JVM。tla-ts 可以在浏览器、Node 和 Bun 等任何能运行 JavaScript 的环境中使用,无需安装 Java 即可检查形式化模型。
tla-ts 可以免费使用吗?用的什么许可证?
tla-ts 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
tla-ts 还在维护吗?
活跃维护中。tla-ts 最近一次提交是在 2026年11月5日。
tla-ts 适合用来做什么?
在 Node 或浏览器环境中对分布式协议规约进行模型检查。 在基于 JavaScript 的 CI 流水线中运行 TLA+ 检查,无需配置 Java。 在浏览器中提供交互式 TLA+ 演示环境,用于教学或展示。 在已使用 Node 工具链的项目中检查 TLAPS 证明。
tla-ts 怎么安装和运行?
从 npm 安装该包: npm install tla-ts 在命令行中检查 TLA+ 规范: npx tla-ts Spec.tla
在哪里获取 tla-ts?
源代码和安装说明在 GitHub 上:https://github.com/aidenybai/tla-ts

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目