How is Redis Licensed
Redis is open source, BSD license.
Redis Modules, which are add-ons on top of Redis, are created by people in the community and bear different licenses (such as BSD and MIT), according to creator’s choice.
Certain modules created by Redis Labs (e.g. RediSearch, RedisGraph, ReJSON, Redis-ML, ReBloom) are licensed Apache 2.0 modified with Commons Clause. Read further explanation in the PDF document by Heather Meeker.
Redis Enterprise is closed source and requires a commercial license from Redis Labs.
Understanding an Evolution
in Software Licensing
What is Commons Clause
Initiated by a coalition of top infrastructure software companies to protect their rights, Commons Clause is a condition added to existing open source software licenses to create a new, combined software license. The combined license maintains all conditions of the underlying open source license, but limits commercial sale of the software. According to commonsclause.com, its exact definition is:
The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition. Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software. For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the License must also include this Commons Cause License Condition notice.
Why did Redis Labs adopt it?
Modern open source infrastructure software has created more value over the past decade than we could have ever imagined. Databases, orchestrators, distributed systems and other software technologies now power nearly every business on the planet; all thanks to the shared, collaborative philosophy of the open source community.
However, today’s cloud providers have repeatedly violated this ethos by taking advantage of successful open source projects and repackaging them into competitive, proprietary service offerings. Cloud providers contribute very little (if anything) to those open source projects. Instead, they use their monopolistic nature to derive hundreds of millions dollars in revenues from them. Already, this behavior has damaged open source communities and put some of the companies that support them out of business.
Redis is an example of this paradigm. Today, most cloud providers offer Redis as a managed service over their infrastructure and enjoy huge income from software that was not developed by them. Redis Labs is leading and financing the development of open source Redis and deserves to enjoy the fruits of these efforts. Redis is and will always remain open source BSD license, but we decided to prevent cloud providers from creating managed services from certain add-ons on top of Redis (e.g. RediSearch, Redis Graph, ReJSON, Redis-ML, Rebloom). These are licensed Apache 2.0 modified with Commons Clause.
Why didn’t you use AGPL for Redis Modules ?
We initially licensed them under AGPL. However, later on we realized AGPL does not prevent cloud providers from creating managed services from our code. Furthermore, we got requests from developers working at large enterprises, to move from AGPL to a more permissive license, because the use of AGPL is against their company policies.
Why riding on an open source license, instead of creating your own new license?
Commons Clause was created by a coalition of several open source infrastructure companies, some of which use different open source licenses. In order to maintain a standard framework, we decided to piggyback the restriction (preventing cloud providers from creating managed services) on any existing open source license.
How does the Commons Clause restriction affect me?
We’re committed to keeping Redis open, so companies (big and small) can use this incredible technology and freely integrate it with their proprietary solutions. The Redis core is, and always will remain, an open source BSD license. Certain add-ons on top of Redis (modules), however, are now licensed as “Apache 2.0 modified with Commons Clause.” These modules can be freely used in any application, but selling a product whose value derives, entirely or substantially, from their functionality is prohibited. In simple words: if your product is an application that uses such a module to perform select functions, you can use it freely and there are no restrictions on selling your product. However, if what you sell is basically the functionality of the module packaged as a cloud service or on-prem software, Commons Clause does not allow it.
Is Commons Clause open source?
According to the Open Source Initiative (OSI), open source licensing cannot limit the scope of a license – it only applies conditions to exercising it. With this model, no one can stop you from doing whatever you want with the software, whether commercial or non-commercial, or (famously) good or evil. Therefore, the no-sale restriction imposed by Commons Clause means that any software under this new license is non-open source by definition. However, in practice, Commons Clause only adds a limitation concerning fair use, and we believe that both licensing approaches share the same core value of making software available for use by anyone.
How do I contribute to Redis repositories under Commons Clause?
Redis Labs’ open source projects are listed here. Anyone can contribute to any of these projects (including those licensed with Commons Clause), provided he/she signs our Contributor License Agreement.