The MIT License is an extremely popular open source software license used on the likes of Ruby on Rails, jQuery, and Node.js. As an open source license, the MIT License dictates what you must, can, and can’t do when you use, modify, and/or redistribute the licensed code.
The MIT License is a permissive license, meaning it carries very few restrictions in these areas. This is in contrast to copyleft licenses like the GPL v3 and AGPL, which require that distributed works based on copyleft-licensed components use the same license as the original. (For example, a derivative work of GPL v3-licensed software must also be licensed under the GPL v3.)
However, there are some notable differences between even the MIT License and other popular permissive options like the BSD family and the Apache License 2.0. We'll discuss those differences, along with the MIT's requirements and permissions, in this blog post.
MIT License Provisions
The MIT License is the most widely used open source license, by a fairly wide margin. Given its status as a permissive license, it imposes relatively few conditions on use of the licensed code.
Additionally, the MIT License also happens to be simpler and easier to digest than many common licenses. In fact, you can read all 172 words of it right here.
What Are the MIT License Requirements?
The MIT License requires two things in your copy and/or modification of the code:
- The original copyright notice
- A copy of the license itself
The MIT License actually works in a manner where the licensor applies the license with the copyright notice filled in, which can further simplify compliance.
In contrast to copyleft licenses, the MIT License does not require those who modify the original code to also release their modification(s) under the same license. There’s no reciprocity or “pay it forward” requirement, even if you substantially rework the code. Your updated version can remain proprietary.
Cans and Can’ts
One of the purposes of an open source license is to outline what others can and can’t do with the code. In the case of the MIT License, users are allowed to:
- Use the code in commercial applications: For example, a company can create a proprietary piece of software that includes all or part of the original open source code, then charge money for that software.
- Modify the code: In other words, developers can change/update the code however they’d like.
- Distribute copies of the code and any modifications: As long as the original copyright notice and the license itself are included, an organization can distribute and sell copies or modified versions of the code.
- Sublicense the code: This means you can incorporate the original code into a modification with a stricter license.
So, what can’t you do with MIT-licensed code? The answer is “not much,” with a few exceptions. For one, you can’t hold the code author(s) legally liable for any reason. You also can’t delete the copyright notice and original license from your version of the code.
MIT vs. Other Permissive Licenses
The MIT License isn’t the only permissive license out there, or even the only popular one. Here's how it compares to two other well-known permissive licenses: Apache 2.0 and BSD.
What's the Difference Between the MIT License and Apache License 2.0?
Like the MIT License, the Apache License 2.0 requires any reuse of the code to include the original copyright notice and a full-text copy of the license. However, those aren’t the only requirements. The Apache License 2.0 also states that anyone who significantly modifies the code must describe their changes. In addition, if the open source library contains a "NOTICE" file with attribution notes, users of the code must include that NOTICE as well.
Along with these requirements comes a few additional benefits. Apache 2.0 explicitly grants copyright holders the right to claim patents on their work. (Though many experts argue that the text of the MIT License provides similar patent protections.) Also, anyone who uses the code can place a warranty on the licensed software.
What's the Difference Between the MIT License and the BSD 3-Clause License?
The MIT and BSD Licenses are extremely similar and include the same basic requirements. The BSD License, however, has multiple variants (the BSD 3-Clause License is the most popular variant) and includes language that’s a bit less permissive.
MIT License Use Cases
Whether you’re a developer, an open source contributor, or a large enterprise, the MIT License and any open source projects licensed under it offer a number of benefits.
For Authors
If you’re a developer building a new open source code project, there are several good reasons to select the MIT License for your code. For one, it’s extremely quick and easy to add the license to your project, meaning you can get v1.0 of your creation out the door and into the hands of prospective users right away.
Also, the MIT License is very popular and likely already vetted by and familiar to your target audience. Choosing a more obscure or burdensome license might cause developers or businesses to think twice about using your code.
Do you want other companies (maybe even famous enterprises) to use your open source code in their own software? If so, the MIT License is a great choice because it allows for the reuse and modification of your work without a source code sharing requirement. This is important because organizations may be reluctant to include your code in their propriety offerings if they have to release their modifications to the whole world.
For Users
If a business is looking to use open source code in commercial applications, MIT Licensed-software is appealing for several reasons. First, all a business needs to do is to include the copyright notice and license text as part of their release. (And, as mentioned, the way the MIT License works, the licensor applies the license with the copyright notice filled in.) For companies looking to avoid burdensome compliance requirements, this license is ideal.
Also, the MIT License allows you to keep any significant code changes under wraps, helping you keep your competitive advantage.
Well-Known Uses of the MIT License
A number of notable open source projects use the MIT License. For example, anyone who works with JavaScript has likely come across jQuery, Node.js, and/or Babel, all of which are licensed under MIT. Other examples include the programming language Lua, the web development framework Ruby on Rails, and the X Window System (X11).
Frequently Asked Questions About the MIT License
What is the MIT License?
The MIT License is a permissive open source software license that allows users to freely use, modify, and distribute code with minimal restrictions. It's one of the most popular open source licenses, used by projects like jQuery, Node.js, and Ruby on Rails.
Can I use MIT-licensed code in commercial software?
Yes, the MIT License explicitly allows commercial use. You can incorporate MIT-licensed code into proprietary software and charge money for it, as long as you include the copyright notice and license text.
Do I need to share my modifications to MIT-licensed code?
No, the MIT License does not require you to share your modifications or release them under the same license. You can keep your changes proprietary and private.
Can I sublicense MIT-licensed code?
Yes, you can sublicense MIT-licensed code. This means you can incorporate it into a project with a stricter license, such as a proprietary license.
What can't I do with MIT-licensed code?
You cannot hold the original authors legally liable for any issues with the code, and you cannot remove the copyright notice or license text from your version of the code.
Why is the MIT License so popular?
The MIT License is popular because it's simple, permissive, and well-understood. It allows maximum freedom for both developers and businesses while maintaining minimal compliance requirements.
Is the MIT License compatible with GPL?
Yes, the MIT License is compatible with GPL. You can combine MIT-licensed code with GPL-licensed code, but the resulting work must be licensed under GPL due to GPL's copyleft requirements.
