MedallionShell 1.6.0

A lightweight library that simplifies working with processes in .NET

Install-Package MedallionShell -Version 1.6.0
dotnet add package MedallionShell --version 1.6.0
<PackageReference Include="MedallionShell" Version="1.6.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MedallionShell --version 1.6.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

MedallionShell vastly simplifies working with processes in .NET.

.NET ships with the powerful System.Diagnostics.Process class built in. However, the Process API is clunky to use and there are many pitfalls which must be accounted for even in basic scenarios. MedallionShell is built on top of Process and focuses on streamlining common use-cases while eliminating or containing traps so that things "just work" as much as possible.

With MedallionShell, running a process is as simple as:

Command.Run("git", "commit", "-m", "critical bugfix").Wait();

Here are some of the things the library takes care of for you:

  • Clean integration with async/await and Task
  • Piping standard IO streams to and from various sources without creating deadlocks or race conditions
  • Properly escaping process arguments (a common source of security vulnerabilities)
  • Being able to recover from hangs through timeout, CancellationToken, and safe kill, and signal support
  • Cross-platform support (e. g. signals and workarounds for Mono oddities)

To learn more, check out the full documentation.

MedallionShell vastly simplifies working with processes in .NET.

.NET ships with the powerful System.Diagnostics.Process class built in. However, the Process API is clunky to use and there are many pitfalls which must be accounted for even in basic scenarios. MedallionShell is built on top of Process and focuses on streamlining common use-cases while eliminating or containing traps so that things "just work" as much as possible.

With MedallionShell, running a process is as simple as:

Command.Run("git", "commit", "-m", "critical bugfix").Wait();

Here are some of the things the library takes care of for you:

  • Clean integration with async/await and Task
  • Piping standard IO streams to and from various sources without creating deadlocks or race conditions
  • Properly escaping process arguments (a common source of security vulnerabilities)
  • Being able to recover from hangs through timeout, CancellationToken, and safe kill, and signal support
  • Cross-platform support (e. g. signals and workarounds for Mono oddities)

To learn more, check out the full documentation.

Release Notes

See https://github.com/madelson/MedallionShell#release-notes

Showing the top 2 GitHub repositories that depend on MedallionShell:

Repository Stars
rnwood/smtp4dev
smtp4dev - the mail server for development
madelson/DistributedLock
A .NET library for distributed synchronization

Version History

Version Downloads Last updated
1.6.0 3,957 4/27/2019
1.5.1 21,786 4/30/2018
1.5.0 27,113 8/18/2017
1.4.0 509 7/1/2017
1.3.0 2,660 5/31/2017
1.2.1 3,552 10/12/2016
1.2.0 404 10/11/2016
1.1.0 14,737 7/12/2015
1.0.3 447 6/12/2015
1.0.2 666 2/22/2015
1.0.1 908 8/30/2014
1.0.0 490 8/23/2014