Repolode
p-org

p-org/P

分散システムを形式的にモデル化し、その正しさを体系的に検証する、状態機械ベースのプログラミング言語。

スター
3,721
フォーク
225
未解決の Issue
34
最終コミット
2 か月前

これは何?

Pを使うと、システム設計を相互に通信する状態機械の集合としてモデル化し、自動推論バックエンドで設計が正しさの仕様を満たしているか検証できます。通常のテストでは見つけにくい、メッセージの順序の組み合わせや障害に起因するバグが問題となる、分散システムやイベント駆動型システムを対象としています。

P Checkerは、起こり得るメッセージ順序や障害シナリオを体系的に探索し、見落としやすいバグを洗い出します。プロジェクトには追加のバックエンドとしてPExとPVerifierも含まれています。また、1回のコンパイルで複数の型エラーを報告するコンパイラを備えたCLIや、本番サービスのログをP仕様に照らして検査するPObserveもあります。PeasyAIは、Pの状態機械やテストドライバーのAI支援による生成機能を提供し、MCP経由でCursorやClaude Codeと連携します。

このプロジェクトは産学連携で保守されており、READMEによると、S3、DynamoDB、EC2などのサービスでAWSのチームが利用しています。NuGet、またはCLIと依存関係をまとめたDockerイメージからインストールできます。

主な機能

  • 01安全性と活性の仕様を定め、システムを相互に通信する状態機械としてモデル化。
  • 02メッセージの順序の組み合わせや障害を体系的に探索し、見つけにくいバグを検出。
  • 03コンパイラはデフォルトで1回の処理ですべての型エラーを報告し、strictモードも利用可能。
  • 04PObserveが実行時にサービスログをP仕様に照らして検証。
  • 05PeasyAIが状態機械とテストドライバーを生成し、MCP経由でCursorやClaude Codeと連携。

ユースケース

  • 実装前に、分散プロトコルやマイクロサービス間の連携設計を検証する。
  • 統合テストでは見つからない、並行処理や障害対応に関するバグを検出する。
  • 既存の形式仕様に照らして、本番サービスのログを検査する。
  • AIツールを使って設計ドキュメントからPモデルの草案を作成する。

クイックスタート

  1. 1

    P CLIとその依存関係が含まれた公式Dockerイメージを実行します

    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 のインストール方法は?
P CLIとその依存関係が含まれた公式Dockerイメージを実行します: docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest ローカルにインストールする場合は、プロジェクトサイトのインストールガイドに従ってください
P はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/p-org/P

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト