Skip to content
forked from p-org/PSharp

Safe asynchronous event-driven programming for .NET and Azure.

License

Notifications You must be signed in to change notification settings

saurabh500/PSharp

 
 

Repository files navigation

GitHub license NuGet Build status

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

Read the P# programming guide and then read about various features and topics here.

How to build

Follow the instructions to build P# from source, or just install our latest P# NuGet package.

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 programming for .NET and Azure.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.8%
  • PowerShell 0.2%