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: The Basics
The MIT License is the most widely used open source license as of this writing. As mentioned, the MIT is a permissive license, so it doesn't have much by way of requirements.
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.
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.
Can’s 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. In this section, we’ll compare the MIT License with two other well-known permissive licenses: Apache 2.0 and BSD.
MIT vs. Apache 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 restrictions come 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.
MIT License vs. BSD 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. As a result, the MIT License remains the more popular of the two.
MIT License Use Cases
Whether you’re a developer, a FOSS 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 V 1.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.
RELATED: The Developer's Guide to Open Source Software Licenses
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).
The Future of the MIT License
The MIT License shows no signs of slowing down. Whether you decide to incorporate it into your open source project or your team’s proprietary software, it’s helpful to know the basics of this frequently used and influential license. You’re more than likely to interact with it, either directly or indirectly, over your open source career.