p 3.0.4

dotnet tool install --global p --version 3.0.4
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local p --version 3.0.4
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=p&version=3.0.4
                    
nuke :add-package p --version 3.0.4
                    

<div align="center"> <img src="Icon/icon.png" width="20%"> <h2>Formal Modeling and Analysis of Distributed Systems</h2> </div>

NuGet GitHub license GitHub Action (CI on Windows) GitHub Action (CI on Ubuntu) GitHub Action (CI on MacOS) Tutorials


P is a state machine based programming language for formally modeling and specifying complex distributed systems. P allows programmers to model their system design as a collection of communicating state machines and provides automated reasoning backends to check that the system satisfies the desired correctness specifications.

Impact

P enables developers to model system designs as communicating state machines—a natural fit for microservices and service-oriented architectures. Teams across AWS building flagship products—from storage (S3, EBS), to databases (DynamoDB, MemoryDB, Aurora), to compute (EC2, IoT)—use P to reason about the correctness of their designs. P has helped these teams eliminate several critical bugs early in the development process.

<div align="center"> <a href="https://www.youtube.com/watch?v=FdXZXnkMDxs"> <img src="https://img.youtube.com/vi/FdXZXnkMDxs/hqdefault.jpg" style="width:40%;"> </a> <br/> <em><a href="https://youtu.be/FdXZXnkMDxs?si=iFqpl16ONKZuS4C0">(Re:Invent 2023) Gain confidence in system correctness & resilience with Formal Methods</a></em> </div>

📄 Systems Correctness Practices at Amazon Web ServicesMarc Brooker and Ankush Desai, Communications of the ACM, 2025.

Why Teams Choose P

Benefit Description
Thinking Tool Writing specifications forces rigorous design thinking—many bugs are caught before any code runs.
Bug Finder Model checking uncovers corner-case bugs that stress testing and integration testing miss.
Faster Iteration After initial modeling, changes can be validated quickly before implementation.

What's New

PeasyAI — AI-Powered Code Generation

Generate P state machines, specifications, and test drivers directly from design documents.

  • Integrates with Cursor and Claude Code via MCP
  • 27 specialized tools for P development
  • Ensemble generation with auto-fix pipeline
  • 1,200+ RAG examples for context-aware generation

👉 Get started with PeasyAI

PObserve — Runtime Monitoring

Validate that production systems conform to their formal P specifications.

  • Check service logs against P monitors
  • Bridge design-time verification with runtime behavior
  • Works in both testing and production environments

👉 Learn about PObserve

The P Framework

Component Description
P Language Model distributed systems as communicating state machines. Specify safety and liveness properties.
P Checker Systematically explore message interleavings and failures to find deep bugs. Additional backends: PEx, PVerifier.
PeasyAI AI-powered code generation with auto-fix and human-in-the-loop support.
PObserve Validate service logs against P specifications.

Let the fun begin!

You can find most of the information about the P framework on: https://p-org.github.io/P/

What is P? | Getting Started | PeasyAI | Tutorials | Case Studies | Publications

If you have any questions, please feel free to create an issue, ask on discussions, or email us.

P has always been a collaborative project between industry and academia (since 2013). The P team welcomes contributions and suggestions from all of you! See CONTRIBUTING for more information.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
3.0.4 132 3/13/2026
3.0.3 431 2/4/2026
3.0.2 11,057 12/12/2025
3.0.0 3,430 8/13/2025
2.4.0 983,021 8/7/2025
2.3.8 931 5/16/2025
2.3.7 602,180 4/23/2025
2.3.6 6,858 3/24/2025
2.3.5 36,456 2/18/2025
2.3.4 29,725 1/16/2025
2.3.3 283 1/8/2025
2.3.2 582 11/20/2024
2.3.1 481 10/21/2024
2.3.0 385 10/15/2024
2.2.2 668,205 8/12/2024
2.2.1 1,016 7/1/2024
2.2.0 8,923 5/30/2024
2.1.5 366 5/21/2024
2.1.4 274 5/20/2024
2.1.3 549 5/3/2024
Loading failed