This repository provides an overview of various open-source licenses. Understanding these licenses is crucial for developers who want to use, modify, or distribute open-source software. Each license has its own terms and conditions, and this guide aims to explain them in a clear and concise manner.
- MIT License
- GNU General Public License (GPL) v3.0
- Apache License 2.0
- BSD 2-Clause "Simplified" License
- BSD 3-Clause "New" or "Revised" License
- Boost Software License 1.0
- Creative Commons Zero v1.0 Universal
- Eclipse Public License 2.0
- GNU Affero General Public License v3.0
- GNU General Public License v2.0
- GNU Lesser General Public License v2.1
- Mozilla Public License 2.0
- The Unlicense
- Creative Commons Licenses
- Other Licenses
- Contributing
- License
The MIT License is a permissive license that allows users to do almost anything with the project, such as making and distributing closed-source versions.
- Permissions: Use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the software.
- Conditions: Include the original license and copyright notice in all copies or substantial portions of the software.
- Limitations: The software is provided "as is", without warranty of any kind.
The GPL v3.0 is a copyleft license that requires anyone who distributes the code or a derivative work to make the source available under the same terms.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified versions must also be open-source and distributed under the same GPL license. Include the original license and copyright notice.
- Limitations: The software is provided "as is", without warranty of any kind.
The Apache License 2.0 is a permissive license similar to the MIT License but also provides an express grant of patent rights from contributors to users.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Include the original license and copyright notice in all copies or substantial portions of the software. Include a NOTICE file if the software is distributed.
- Limitations: The software is provided "as is", without warranty of any kind.
The BSD 2-Clause License is a permissive license with minimal requirements regarding redistribution.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Include the original license and copyright notice in all copies or substantial portions of the software.
- Limitations: The software is provided "as is", without warranty of any kind.
The BSD 3-Clause License is a permissive license with minimal requirements regarding redistribution, with an additional clause that prohibits others from using the names of the project or its contributors to promote derived products.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Include the original license and copyright notice in all copies or substantial portions of the software. Do not use the names of the project or its contributors to promote derived products.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for projects where you want to allow wide usage and modification but prevent misuse of the project's name.
- Examples: FreeBSD, NetBSD, and other open-source projects.
For more information and to create a BSD 3-Clause License, visit opensource.org.
The Boost Software License is a permissive license that is very similar to the BSD and MIT licenses.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Include the original license in all copies or substantial portions of the software.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Ideal for libraries and tools where you want to allow wide usage and modification with minimal restrictions.
- Examples: Boost C++ Libraries.
For more information and to create a Boost Software License, visit boost.org.
The CC0 license allows creators to waive all their copyright and related rights in their works, effectively placing them in the public domain.
- Permissions: Copy, modify, distribute, and perform the work, even for commercial purposes, without asking permission.
- Conditions: None.
- Limitations: The work is provided "as is", without warranty of any kind.
- Use Cases: Suitable for creative works like images, music, and literature where the creator wants to relinquish all rights.
- Examples: Public domain works, open data projects.
For more information and to create a CC0 License, visit creativecommons.org.
The EPL is a copyleft license that requires modifications to be open-source but allows larger works to be distributed under different terms.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified versions must be open-source and distributed under the same EPL license. Larger works that include the software can be distributed under different terms.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for software projects where you want to ensure modifications remain open-source but allow integration into larger proprietary systems.
- Examples: Eclipse IDE, other Eclipse Foundation projects.
For more information and to create an EPL License, visit eclipse.org.
The AGPL is a copyleft license that requires anyone who distributes the code or a derivative work to make the source available under the same terms, and also requires that the source code be made available to users who interact with the software over a network.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified versions must also be open-source and distributed under the same AGPL license. Include the original license and copyright notice. Make the source code available to users who interact with the software over a network.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for web applications and network services where you want to ensure that users can access the source code.
- Examples: MongoDB, other network-based applications.
For more information and to create an AGPL License, visit gnu.org.
The GPL v2.0 is a copyleft license that requires anyone who distributes the code or a derivative work to make the source available under the same terms.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified versions must also be open-source and distributed under the same GPL license. Include the original license and copyright notice.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for software projects where you want to ensure that all modifications remain open-source.
- Examples: Linux kernel, other open-source projects.
For more information and to create a GPL v2.0 License, visit gnu.org.
The LGPL is a copyleft license that allows developers to link to open-source libraries without affecting the licensing of the larger project.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified versions of the LGPL-licensed code must be open-source and distributed under the same LGPL license. Larger works that include the software can be distributed under different terms.
- Limitations: The software is provided "as is", without warranty of any kind.
- Examples: GNU C Library, other open-source libraries.
For more information and to create an LGPL License, visit gnu.org.
The MPL is a weak copyleft license that allows the software to be combined with other licenses, but requires that modifications to the MPL-licensed code itself be open-source.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: Modified files must be open-source and distributed under the same MPL license. Larger works that include the software can be distributed under different terms.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for software projects where you want to ensure modifications remain open-source but allow integration into larger proprietary systems.
- Examples: Firefox, other Mozilla projects.
For more information and to create an MPL License, visit mozilla.org.
The Unlicense is a public domain dedication that allows developers to freely use, modify, and distribute the software without any restrictions.
- Permissions: Use, copy, modify, and distribute the software.
- Conditions: None.
- Limitations: The software is provided "as is", without warranty of any kind.
- Use Cases: Suitable for projects where you want to relinquish all rights and place the software in the public domain.
- Examples: Public domain software, open data projects.
For more information and to create an Unlicense, visit unlicense.org.
Creative Commons licenses are used for creative works such as images, music, and literature. They provide a range of permissions and restrictions.
- CC BY: Allows users to distribute, remix, adapt, and build upon the work, even commercially, as long as they credit the original creation.
- CC BY-SA: Allows users to remix, adapt, and build upon the work even for commercial purposes, as long as they credit the original creation and license their new creations under the identical terms.
- CC BY-ND: Allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to the original creation.
- CC BY-NC: Allows users to remix, adapt, and build upon the work non-commercially, and although their new works must also acknowledge the original creation and be non-commercial, they don’t have to license their derivative works on the same terms.
- CC BY-NC-SA: Allows users to remix, adapt, and build upon the work non-commercially, as long as they credit the original creation and license their new creations under the identical terms.
- CC BY-NC-ND: The most restrictive license, allowing others to download the works and share them with others as long as they credit the original creation, but they can’t change them in any way or use them commercially.
There are many other open-source licenses, each with its own terms and conditions. Some of the other notable licenses include:
- Eclipse Public License (EPL): A copyleft license that requires modifications to be open-source but allows larger works to be distributed under different terms.
- Artistic License: A permissive license used primarily for Perl and its related libraries.
- Zlib License: A permissive license similar to the MIT License, used for the zlib compression library.
When creating or updating a repository on GitHub, you can specify a license using keywords. This helps GitHub recognize the license and display it prominently in the repository. Here are some common license keywords:
License Name | Keyword |
---|---|
MIT License | mit |
GNU General Public License v3.0 | gpl-3.0 |
Apache License 2.0 | apache-2.0 |
BSD 2-Clause "Simplified" License | bsd-2-clause |
BSD 3-Clause "New" or "Revised" License | bsd-3-clause |
Boost Software License 1.0 | bsl-1.0 |
Creative Commons Zero v1.0 Universal | cc0-1.0 |
Eclipse Public License 2.0 | epl-2.0 |
GNU Affero General Public License v3.0 | agpl-3.0 |
GNU General Public License v2.0 | gpl-2.0 |
GNU Lesser General Public License v2.1 | lgpl-2.1 |
Mozilla Public License 2.0 | mpl-2.0 |
The Unlicense | unlicense |
For more information on licensing a repository on GitHub, visit the GitHub documentation.
Contributions are welcome! If you have suggestions for improving this guide or want to add information about other licenses, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.