FAQ: Licensing

Licensing

Can I write commercial or proprietary applications that run with Mono?

Yes. The licensing scheme is planned to allow proprietary developers to write applications with Mono.

What license or licenses are you using for the Mono Project?

The Mono runtime, compilers and tools and most of the class libraries are licensed under the MIT license.

The Mono runtime include some bits of code licensed under the BSD license and some class libraries are under the Apache 2 license. The exact list is available here

Note that as of March 31st, 2016 the Mono runtime and tools have been relicensed to the MIT license.

I would like to contribute code to Mono under a particular license. What licenses will you accept?

Contributions are now taken under the .NET Foundation CLA.

Patents

What kind of patent coverage exists for Mono?

Microsoft has issued a patent promise for Mono, as follows:

 Microsoft Patent Promise for Mono

 Microsoft Corporation and its affiliates (“Microsoft”) promise not to
 assert any Applicable Patents against you for making, using, selling,
 offering for sale, importing, or distributing Mono.

 If you file, maintain, or voluntarily participate in any claim in a
 lawsuit alleging direct or contributory patent infringement by Mono,
 or inducement of patent infringement by Mono, then your rights under
 this promise will automatically terminate.

 This promise is not an assurance that (i) any Applicable Patents are
 valid or enforceable or (ii) Mono does not infringe patents or other
 intellectual property rights of any third party. No rights except
 those expressly stated in this promise are granted, waived or received
 by Microsoft, whether by implication, exhaustion, estoppel or
 otherwise. This is a personal promise directly from Microsoft to you,
 and you agree as a condition of benefitting from it that no Microsoft
 rights are received from suppliers, distributors, or otherwise in
 connection with this promise.

 Definitions:

 “Mono” means those portions of the software development technology, as
 originally distributed by Xamarin, Inc. or the .NET Foundation under
 the name “Mono,” that implement .NET Framework Functionality, provided
 that such portions at a minimum implement all of the required parts of
 the mandatory provisions of Standard ECMA-335 – Common Language
 Infrastructure (CLI).

 “.NET Framework Functionality” means any functionality in Microsoft’s
 .NET Framework as described in Microsoft’s API documentation on
 Microsoft’s MSDN website, including the functionality in
 Windowsbase.dll, but excluding all other functionality in the Windows
 Presentation Foundation component of .NET Framework.

 “Applicable Patents” are those patent claims, currently owned by
 Microsoft and acquired in the future, that are necessarily infringed
 by Mono. For clarity, Applicable Patents do not include any patent
 claims that are infringed (x) by any underlying or enabling technology
 that may be used, combined, or distributed in connection with Mono
 (such as hardware, operating systems, or applications that run on
 Mono), (y) only as a consequence of modification of Mono, or (z) only
 by the combination of Mono with third party code.