What is an open source software license? Think of open source software as free, but free like a free puppy. It comes with a set of responsibilities and chores once you are in possession of the puppy, or in this case the software. Those responsibilities are defined in the open source license.

In other words, an open source license states what you are responsible for if you are using open source software to build your software. Most frequently, the license has a set of terms to follow if you are going to distribute your software. Essentially, when you choose an open source license, you're determining how an open source library is accessed, used, and redistributed.

Understanding licenses for open source projects is extremely important because you are legally responsible for complying with the terms. Additionally, selecting the wrong license can allow companies to leverage your software in ways you don't approve of because different licenses have different policies. As open source becomes increasingly popular, it is important to be aware of the different rules around licensing.

Two Main Categories of OSS Licenses

Open source licenses are important for software that is being distributed, especially if there is intellectual property or proprietary information in the codebase of the open source project. There are two main types of open source licenses, permissive and copyleft. Both have their own rules and regulations in regards to the freedom users have in open source projects.


A permissive license allows you to use the original program with little restrictions on how you choose to use the source code and re-share the software. It is also known as "non-copyleft" license and the main requirement is generally to include attribution of the original code to the original developers. A permissive license does not have reciprocity obligations so there is no assurance that the software will always remain free and public. With a permissive license, you can generally change and re-share someone else's program without disclosing the source code.


Copyleft licenses require that anyone who releases a modified open source program must also release the source code for that program. This type of license generally allows you to change and re-share someone else's program as long as you also include your source code for others too. This is also known as the reciprocity obligation which states that you must release the original source code with all the rights to modify and distribute the code. When using a copyleft license you need to be careful as it might require you to expose intellectual property. Additionally, there are two types of copyleft licenses: weak and strong.


MIT License

The MIT License is one of the most commonly used and permissive open source licenses.  Under this license, you can essentially do anything with the software as long as you include the original copyright and license notice in the copy of the software. It is also easily integrated into software with copyleft licenses because it has little regulations on how the software can be reused. The MIT License is simple to understand and has the least restrictions which is why it is used in many open source projects.

Apache License 2.0

The Apache License 2.0 is a permissive open source license. With this license, you have the freedom to do what you want with the software, with the exception that you must include the original copyright and license notice, state any significant changes, and include the NOTICE file if there is one. These extra exceptions make the Apache License 2.0 a little less permissive than the MIT License for example. Regardless, the Apache License 2.0 is commonly used.

BSD License

The BSD License, short for Berkeley Software Distribution, is a permissive open source license. This license allows you the freedom to use, modify, and distribute the software as long as the copyright and license notice are included in the copy of the software. There are many different variants of this license; the most popular is the BSD 3-Clause License (also known as the "New BSD License" or "Modified BSD License"). The difference between these versions are the number of clauses, or restrictions, included. This license is among the most popular permissive open source licenses.


GPL License

The GNU General Public License, GPL for short, is the most popular copyleft license for open source. The GPL License requires that if you write software using GPL component, you must also release the full source code while giving your users the same rights you received. This license was created to protect software from becoming proprietary, or private, which is why many programmers like this license. They get the assurance that the restrictions with the GPL License will keep their work free and acknowledged. Three versions of the GPL License have been published: GPL v1 (which is no longer widely used), GPL v2, and GPL v3.

Mozilla Public License 2.0

The Mozilla Public License 2.0, also known as MPL, is a copyleft license maintained by the Mozilla Foundation. It is a weaker copyleft license that requires you to include the original copy of the software and any modified files containing MPL code. It is a balance between permissive licenses and GPL copyleft licenses. Additionally, the MPL Licenses is easily compatible with the GNU licenses which means that the MPL files will be dual-licenses so you can choose how to distribute them.

Applying an Open Source License

Check out our post "How to Apply a License to Your Open Source Project" for step-by-step guidance on adding a license to your creation, along with insight on:

  • Copyright notices
  • Warranty waivers
  • Contributor licensing agreements

We are not lawyers, and if you are seeking legal advice we suggest you speak to a legal team that specializes in open source licensing.