2020-02-29 05:04:35 +03:00
< div align = "center" >
2021-10-15 19:52:31 +03:00
< h2 > < img src = "docs/assets/images/logo_coyote.svg" width = "70%" > < / h2 >
2020-02-29 05:04:35 +03:00
< / div >
2020-02-29 03:01:21 +03:00
[![NuGet ](https://img.shields.io/nuget/v/Microsoft.Coyote.svg )](https://www.nuget.org/packages/Microsoft.Coyote/)
2021-07-10 00:08:45 +03:00
[![Open in Visual Studio Code ](https://open.vscode.dev/badges/open-in-vscode.svg )](https://open.vscode.dev/microsoft/coyote)
2021-07-10 00:06:29 +03:00
[![Join the chat at https://gitter.im/Microsoft/coyote ](https://badges.gitter.im/Microsoft/coyote.svg )](https://gitter.im/Microsoft/coyote?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
[![Follow on Twitter ](https://img.shields.io/twitter/follow/coyote_dev?style=social&logo=twitter )](https://twitter.com/intent/follow?screen_name=coyote_dev)
2021-10-15 19:52:31 +03:00
![CodeQL ](https://github.com/microsoft/coyote/actions/workflows/codeql-analysis.yml/badge.svg?branch=main )
![Build and Test CI ](https://github.com/microsoft/coyote/actions/workflows/build-test.yml/badge.svg?branch=main )
2020-02-29 03:01:21 +03:00
2021-06-11 22:31:55 +03:00
Coyote is a .NET library and tool designed to help ensure that your code is free of concurrency bugs.
2021-05-20 20:47:35 +03:00
It gives you the ability to reliably *unit test the concurrency* and other sources of nondeterminism
(such as message re-orderings, timeouts and failures) in your C# code. In the heart of Coyote is a
scheduler that takes control (via binary rewriting) of your program's execution during testing and
is able to systematically explore the concurrency and nondeterminism to find safety and liveness
bugs. The awesome thing is that once Coyote finds a bug it gives you the ability to fully *reproduce*
it as many times as you want, making debugging and fixing the issue much easier.
Coyote is used by several teams in [Azure ](https://azure.microsoft.com/ ) to systematically test
their distributed systems and services, finding hundreds of bugs before they manifest in
production. In the words of an Azure service architect:
2020-02-29 05:04:35 +03:00
> Coyote found several issues early in the dev process, this sort of issues that would usually bleed
> through into production and become very expensive to fix later.
2020-02-29 03:01:21 +03:00
2020-03-23 22:32:12 +03:00
See our [documentation ](https://microsoft.github.io/coyote/ ) for more information about the project,
case studies, tutorials and reference documentation.
2020-02-29 03:01:21 +03:00
2021-05-20 20:47:35 +03:00
Coyote is made with :heart: by Microsoft Research.
2020-02-29 03:01:21 +03:00
2020-03-16 17:42:48 +03:00
## Contributing
2020-02-29 03:01:21 +03:00
This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
2020-02-29 05:04:35 +03:00
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a
CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
2020-02-29 03:01:21 +03:00
provided by the bot. You will only need to do this once across all repositories using our CLA.
2020-03-16 17:42:48 +03:00
## Code of Conduct
2020-02-29 05:04:35 +03:00
This project has adopted the [Microsoft Open Source Code of
Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of
Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
[opencode@microsoft.com ](mailto:opencode@microsoft.com ) with any additional questions or comments.