Repolode
p-org

p-org/P

一种基于状态机的编程语言,用于对分布式系统进行形式化建模并系统性检验其正确性。

Star
3,721
Fork
225
未关闭 Issue
34
最近提交
2个月前

这是什么?

P 允许开发者把系统设计建模为一组相互通信的状态机,再借助自动化推理后端检查设计是否满足正确性规约。它面向分布式和事件驱动系统,这类系统中消息交错和故障组合繁多,普通测试很难覆盖其中的隐蔽缺陷。

P Checker 会系统性地探索可能的消息顺序与故障场景,用于发现边界情况下的 bug。项目还包含 PEx 和 PVerifier 作为补充后端,编译器可一次报告多个类型错误。PObserve 可将生产环境的服务日志与 P 规约进行比对。PeasyAI 支持基于设计文档生成 P 状态机和测试驱动,并可通过 MCP 与 Cursor、Claude Code 集成。

P 由工业界与学术界合作维护,README 中提到 AWS 的多个团队在 S3、DynamoDB、EC2 等服务中使用它。可通过 NuGet 安装,也可使用包含 CLI 及依赖的 Docker 镜像。

核心功能

  • 01以相互通信的状态机对系统建模,并定义安全性与活性规约。
  • 02系统性探索消息交错与故障场景,发现深层次 bug。
  • 03编译器默认一次报告所有类型错误,也可切换为遇到首个错误即终止的严格模式。
  • 04PObserve 可在运行时用 P 规约校验服务日志。
  • 05PeasyAI 可生成状态机和测试驱动,并通过 MCP 与 Cursor、Claude Code 集成。

适用场景

  • 在实现之前验证分布式协议或微服务交互的设计。
  • 发现集成测试难以覆盖的并发与故障处理缺陷。
  • 将生产服务日志与已有的形式化规约进行比对。
  • 借助 AI 工具从设计文档起草 P 模型。

快速上手

  1. 1

    运行官方 Docker 镜像,其中已包含 P 命令行工具及其依赖

    docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest
  2. 2

    如需本地安装,请按照项目网站上的安装指南操作

使用前须知

  • 本地安装需要 .NET SDK、JDK、Maven 和 graphviz,使用 Docker 镜像更简单。

收录于专题

标签

常见问题

P 是什么?
一种基于状态机的编程语言,用于对分布式系统进行形式化建模并系统性检验其正确性。 P 允许开发者把系统设计建模为一组相互通信的状态机,再借助自动化推理后端检查设计是否满足正确性规约。它面向分布式和事件驱动系统,这类系统中消息交错和故障组合繁多,普通测试很难覆盖其中的隐蔽缺陷。
P 可以免费使用吗?用的什么许可证?
P 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
P 还在维护吗?
半年内有更新。P 最近一次提交是在 2026年9月3日。
P 适合用来做什么?
在实现之前验证分布式协议或微服务交互的设计。 发现集成测试难以覆盖的并发与故障处理缺陷。 将生产服务日志与已有的形式化规约进行比对。 借助 AI 工具从设计文档起草 P 模型。
P 怎么安装和运行?
运行官方 Docker 镜像,其中已包含 P 命令行工具及其依赖: docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest 如需本地安装,请按照项目网站上的安装指南操作
在哪里获取 P?
源代码和安装说明在 GitHub 上:https://github.com/p-org/P

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

相关项目