67f7283 Sep 27, 2015
55 lines (34 sloc) 4.19 KB

The aim of this file is to acknowledge the software projects that have been used to create NSubstitute, particularly those distributed as Open Source Software. They have been invaluable in helping us produce this software.

Software distributed with/compiled into NSubstitute


NSubstitute is built on the Castle.Core library, particularly Castle.DynamicProxy which is used for generating proxies for types and intercepting calls made to them so that NSubstitute can record them.

Castle.Core is maintained by the Castle Project [] and is released under the Apache License, Version 2.0 [].

Software used to help build NSubstitute

NUnit []

NUnit is used for coding and running unit and integration tests for NSubstitute. It is distributed under an open source zlib/libpng based license [].

Rhino Mocks []

Used for mocking parts of the NSubstitute mocking framework for testing. It is distributed under the BSD license [].

Moq []

Moq is not used in NSubstitute, but was a great source of inspiration. Moq pioneered Arrange-Act-Assert (AAA) mocking syntax for .NET, as well as removing the distinction between mocks and stubs, both of which have become important parts of NSubstitute. Moq is available under the BSD license [].

NuPack []

Used for packaging NSubstitute for distribution as a nu package. Distributed under the Apache License, Version 2.0 [].

Jekyll []

Static website generator written in Ruby, used for NSubstitute's website and documentation. Distributed under the MIT license [].

SyntaxHighlighter []

Open source, JavaScript, client-side code highlighter used for highlighting code samples on the NSubstitute website. Distributed under the MIT License [] and the GPL [].


FAKE (F# Make) is used for NSubstitute's build. It is inspired by make and rake. FAKE is distributed under a dual Apache 2 / MS-PL license [].

Microsoft .NET Framework []

NSubstitute is coded in C# and compiled using Microsoft .NET. It can also run and compile under Mono [], an open source implementation of the open .NET standards for C# and the CLI.

Microsoft's .NET Framework is available under a EULA (and possibly other licenses like MS Reference Source License). Mono is available under four open source licenses for different parts of the project (including MIT/X11, GPL, MS-Pl). These are described on the project site [].

Microsoft Ilmerge []

Used for combining assemblies so NSubstitute can be distributed as a single DLL. Available for use under a EULA as described on the ilmerge site.

Microsoft Reactive Extensions for .NET (Rx) []

Used to provide .NET 3.5 with some of the neat concurrency helper classes that ship with out of the box with .NET 4.0. Distributed under a EULA [].

7-Zip []

7-zip is used to ZIP up NSubstitute distributions as part of the automated build process. Distributed under a mixed GNU LGPL / unRAR licence [].

Other acknowledgements

Software developers

Yes, you! To everyone who has tried to get better at the craft and science of programming, especially those of you who have talked, tweeted, blogged, screencasted, and/or contributed software or ideas to the community.

No software developers were harmed to any significant extent during the production of NSubstitute, although some had to get by on reduced sleep.