Affero General Public License (AGPL)
The GNU Affero General Public License (AGPL) is a free, strong copyleft open-source license. It is a modified version of the standard GNU General Public License (GPL) designed specifically for software that interacts with users over a network (like web applications or Software as a Service).
Here is the breakdown of its definition, purpose, and key differences:
1. The Core Purpose: Closing the "SaaS Loophole"
To understand the AGPL, you must first understand the "loophole" in the standard GPL:
- The Standard GPL Rule: Under the standard GPL, you are only required to release your source code if you distribute (give a copy of) the software to someone else.
- The Loophole: If you run GPL software on a server (cloud/SaaS) and let people use it via a web browser, you are not technically "distributing" the software to them; the code stays on your server. Therefore, under the standard GPL, you are not required to share your source code, even if you modified it.
- The AGPL Solution: The AGPL closes this gap. It asserts that interacting with the software over a network is equivalent to distribution.
2. The "Remote Network Interaction" Clause
The defining feature of the AGPL is Section 13 (in version 3), often called the Affero Clause.
It states that if you modify the program and run it on a server for users to access remotely, you must offer those users an opportunity to download the source code corresponding to the version they are using.
3. Key Characteristics
- Strong Copyleft: Like the GPL, the AGPL is "viral." If you combine your proprietary code with AGPL code into a single program, your proprietary code must usually be released under the AGPL as well.
- Compatibility: The AGPLv3 is compatible with the GPLv3. You can link code from both licenses in a single project, but the resulting combination typically effectively becomes AGPL (the stricter requirement prevails).
- Target Audience: It is most commonly used by developers of databases, web frameworks, and collaboration tools who want to prevent cloud providers (like AWS or Google Cloud) from taking their open-source software, improving it, selling it as a service, and never giving back to the community.
Summary Comparison
Feature | GNU GPL (Standard) | GNU AGPL (Affero) |
Trigger for Open Sourcing | Distributing/Conveying a copy of the software. | Distributing a copy OR allowing users to interact with it over a network. |
Main Use Case | Desktop apps, embedded systems, command-line tools. | Web services, SaaS, Cloud platforms, Databases. |
Effect on SaaS | A company can use/modify it privately on their servers without sharing code. | A company must share their modified source code with users connecting to the server. |
Historically, the license is named after Affero, Inc., a startup founded in the early 2000s by Henry Poole.