Apache License 2.0
A permissive open source license that allows users to use, modify, and distribute software while providing an explicit patent grant and requiring preservation of copyright notices.
Also known as: Apache 2.0, Apache License
Category: Software Development
Tags: software-engineering, programming, licensing, open-source
Explanation
The Apache License 2.0 is a permissive open source license published by the Apache Software Foundation in 2004. It allows users to use, modify, and distribute the software for any purpose, including proprietary use, while providing an explicit patent grant and requiring preservation of copyright notices and disclaimers.
Unlike copyleft licenses such as the GNU General Public License (GPL), Apache 2.0 doesn't require derivative works to be open source. This makes it particularly popular in enterprise environments because it's business-friendly, legally clear, and compatible with GPLv3.
One of the key distinguishing features of the Apache License 2.0 is its explicit patent grant. When contributors submit code under this license, they automatically grant users a license to any patents that would be infringed by their contribution. This protects users from patent litigation by contributors, addressing a concern that simpler licenses like MIT and BSD don't explicitly cover.
The license requires that you retain the original copyright notice, provide a copy of the license, and clearly mark any significant modifications you make to the source code. However, it doesn't grant any rights to use the trademarks of the project or the Apache Software Foundation.
Compared to the MIT and BSD licenses, Apache 2.0 is longer and more detailed but provides stronger legal protections. While MIT and BSD are extremely short and permissive, they lack explicit patent grants. For enterprise use and projects where patent concerns are relevant, Apache 2.0 is often the preferred choice.
Major projects using the Apache License 2.0 include Android (AOSP), Kubernetes, TensorFlow, Apache HTTP Server, Swift, and many others. Rust uses a dual MIT/Apache 2.0 licensing approach, giving users the choice of either license.
Related Concepts
← Back to all concepts