Skip to content

wxdtony/PSharp

 
 

Repository files navigation

NuGet GitHub license

P#

A framework for building, analyzing, systematically testing and debugging asynchronous reactive software. P# is used by engineers in Azure to design, implement and thoroughly test distributed systems and services.

Features

The P# framework provides:

  • Language extensions to C# for building event-driven asynchronous applications, writing test harnesses, and specifying safety and liveness properties.
  • A systematic testing engine that can capture and control all specified nondeterminism in the system, systematically explore the actual executable code to discover bugs, and report bug traces. A P# bug trace provides a global order of all communication events, and thus is easier to debug.
  • Support for replaying bug traces, and debugging them using the Visual Studio debugger.

Getting started

The best way to build and start using P# is to read our wiki.

You can also read the manual and available publications:

How to build

Follow the instructions in our wiki.

How to contribute

We welcome contributions! However, before you start contributing, please read carefully the development guidelines.

Contact us

If you are interested in using P# in your project, or have any P# related questions, please send us an email or open a new issue.

About

Safe asynchronous event-driven .NET programming.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.7%
  • Other 0.3%