Skip to content

rekoder/PSharp

 
 

Repository files navigation

P#

A toolkit for building, analyzing, systematically testing and debugging asynchronous reactive software, such as web-services and distributed systems.

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.

Although P# primarily targets .NET, it has also experimental support for systematically testing native C++ code.

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 contribute

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

Contact us

If you would like to use P# in your project, or have any specific questions, please feel free to contact one of the following members of the P# team (@p-org/psharp-developers):

About

Safer asynchronous .NET programming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.4%
  • Other 0.6%