Source-available software is software released through a source code distribution model that includes arrangements where the source can be viewed, and in some cases modified, but without necessarily meeting the criteria to be called open-source . The licenses associated with the offerings range from allowing code to be viewed for reference to allowing code to be modified and redistributed for both commercial and non-commercial purposes.
42-500: The Server Side Public License ( SSPL ) is a source-available copyleft software license introduced by MongoDB Inc. in 2018. It includes most of the text and provisions of the GNU Affero General Public License version 3 (AGPL v3), but modifies its provisions for software that is conveyed over a network—requiring that anyone who offers the functionality of SSPL-licensed software to third-parties as
84-514: A binary dump, using the Redis RDB Dump File Format. Alternatively by journaling , where a record of each operation that modifies the dataset is added to an append -only file (AOF) in a background process. Redis can rewrite the append-only file in the background to avoid an indefinite growth of the journal. Journaling was introduced in version 1.1 and is generally considered the safer approach. By default, Redis writes data to
126-580: A file system at least every 2 seconds, with more or less robust options available if needed. In the case of a complete system failure on default settings, only a few seconds of data would be lost. Redis supports master–replica replication . Data from any Redis server can replicate to any number of replicas. A replica may be a master to another replica. This allows Redis to implement a single-rooted replication tree. Redis replicas can be configured to accept writes, permitting intentional and unintentional inconsistency between instances. The publish–subscribe feature
168-520: A network have the ability to obtain the source code for the software, as used) had an unclear scope, and that the SSPL's version "clearly and explicitly sets forth the conditions to offering the licensed program as a third-party service". In October 2018, the MongoDB database was relicensed under the SSPL. Debian , Red Hat Enterprise Linux , and Fedora subsequently dropped MongoDB, citing concerns about
210-486: A new data structure that allows storage of multiple fields and string values with an automatic, time-based sequence at a single key. In June 2020, Salvatore Sanfilippo stepped down as Redis' sole maintainer. Sanfilippo was succeeded by Yossi Gottlieb and Oran Agra. In March 2024, Redis switched to a different proprietary software license, styled as the Redis Source Available License v2, and
252-746: A project core team sponsored by Redis Labs . Salvatore Sanfilippo left Redis as the maintainer in 2020. In 2021 Redis Labs dropped the Labs from its name and now is known simply as "Redis". In 2018, some modules for Redis adopted the SSPL . In 2024, the main Redis code switched to dual-licensed under the Redis Source Available License v2 and the Server Side Public License v1. The name Redis means Remote Dictionary Server. The Redis project began when Salvatore Sanfilippo, nicknamed antirez ,
294-528: A service must release the entirety of their source code, including all software, APIs, and other software that would be required for a user to run an instance of the service themselves, under the SSPL. In contrast, the AGPL v3's equivalent provision covers only the licensed work itself. The SSPL is not recognized as free software by the Open Source Initiative (OSI), Red Hat , and Debian as
336-635: A transaction committed. Redis operates as a single process and is single-threaded or double-threaded when it rewrites the AOF (append-only file). Thus, a single Redis instance cannot use parallel execution of tasks such as stored procedures . Redis introduced clustering in April 2015 with the release of version 3.0. The cluster specification implements a subset of Redis commands: all single-key commands are available, multi-key operations (commands related to unions and intersections) are restricted to keys belonging to
378-672: A user could run an instance of the service using the Service Source Code you make available", under the SSPL. The chapter structure of the Server Side Public License is identical to that to the AGPL, except that the GPL preamble and application instructions are stripped from the license text. MongoDB Inc. stated that Section 13 in the AGPL (which requires that those using the AGPL-licensed software over
420-442: Is source-available in the broad sense as long as its source code is distributed along with it, even if the user has no legal rights to use, share, modify or even compile it. It is possible for a software to be both source-available software and proprietary software (e.g. id Software 's Doom ). In contrast, the definitions of free software and open-source software are much narrower. Free software and/or open-source software
462-488: Is a source-available license. In the narrow sense, the term source-available specifically excludes FOSS software. The following source-available software licenses are considered non-free licenses because they have limitations that prevent them from being open-source according to the Open Source Initiative and free to the Free Software Foundation . The Commons Clause, created by Fossa, Inc.,
SECTION 10
#1732787384235504-399: Is a source-available , in-memory storage, used as a distributed , in-memory key–value database , cache and message broker , with optional durability . Because it holds all data in memory and because of its design, Redis offers low- latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of
546-422: Is a modification of the GNU Affero General Public License created by the MongoDB project. It modifies a clause relating to usage of the licensed work over a network, stating that if SSPL-licensed software is incorporated into a "service" offered to other users, the source code for the entirety of the service (including without limitation all software and APIs that would be required for a user to run an instance of
588-426: Is also always source-available software , but not all source-available software is also free software and/or open-source software. This is because the official definitions of those terms require considerable additional rights as to what the user can do with the available source (including, typically, the right to use said software, with attribution, in derived commercial products). In the broad sense, any FOSS license
630-627: Is an addendum to an open-source software license that restricts users from selling the software. Under the combined license, the software is source-available, but not open-source. On August 22, 2018, Redis Labs shifted some Redis Modules from the GNU Affero General Public License to a combination of the Apache License 2.0 and the Commons Clause. In September 2018, Matthew Garrett criticized Commons Clause calling it an "older way of doing things" and said it "doesn't help
672-431: Is fully implemented, so a client of a replica may subscribe to a channel and receive a full feed of messages published to the master, anywhere up the replication tree. Replication is useful for read (but not write) scalability or data redundancy. When the durability of data is not needed, the in-memory nature of Redis allows it to perform well compared to database systems that write every change to disk before considering
714-441: Is that Redis supports not only strings , but also abstract data types: The type of a value determines what operations (called commands) are available for the value. Redis supports high-level, atomic, server-side operations like intersection, union, and difference between sets and sorting of lists, sets and sorted sets. More data types are supported based on Redis Modules API. Note, that some of them are dual licensed, and not under
756-546: The Apache License , but retained the TrueCrypt License for code inherited from TrueCrypt. The Open Source Initiative rejects the TrueCrypt License, as "it has elements incompatible with the OSD ." The Free Software Foundation criticizes the license for restricting who can execute the program, and for enforcing a trademark condition. BeeGFS EULA is the license of the distributed parallel file system BeeGFS, except
798-861: The MIT License . This makes GitLab an example of an open core company. In 2016, Mega Ltd. released the source code of their Mega clients under the Mega Limited Code Review Licence, which only permits usage of the code "for the purposes of review and commentary". The source code was released after former director Kim Dotcom stated that he would "create a Mega competitor that is completely open source and non-profit" following his departure from Mega Ltd. Microsoft's Shared Source Initiative , launched in May 2001, comprises 5 licenses, 2 of which are open-source and 3 of which are restricted. The restricted licenses under this scheme are
840-528: The Open Source Initiative . The SSPL is based on the GNU Affero General Public License (AGPL), with a modified Section 13 that requires that those making SSPL-licensed software available to third-parties (modified or not) as part of a "service" must release the source code for the entirety of the service, including without limitation all "management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that
882-515: The OpenSearch software . Redis moved away from the three-clause BSD license on March 20th, 2024. Users now have a choice between the SSPLv1 license and their own Redis Source Available License (RSALv2). This change in licensing upset many users, prompting The Linux Foundation to create a fork called Valkey , using Redis ' final BSD-licensed iteration as a base. In 2018, MongoDB submitted
SECTION 20
#1732787384235924-478: The Server Side Public License v1, also for its core repository, breaking the 2018 pledge. As a consequence, the Linux Foundation created a fork under the name of Valkey , allowing community maintainers, contributors, and users to continue working on an open source version of the Redis database. Redis popularized the idea of a system that can be considered a store and a cache at the same time. It
966-491: The commons ". Business Source License has been introduced by MariaDB Corporation in 2016 and rapidly became one of the most adopted "delayed open source" licenses. It prohibits use of the code in production environments, where a commercial license is required. Functional Source License has been introduced in November 2023 by Sentry, as a simpler alternative to Business Source License. It prohibits any "competing" use of
1008-955: The #4 Data store of 2019 by ranking website stackshare.io. It was voted most loved database in the Stack Overflow Developer Survey each year from 2017 to 2021. Since version 2.6, Redis features server-side scripting in the language Lua . Many programming languages have Redis language bindings on the client side, including: ActionScript , C , C++ , C# , Chicken , Clojure , Common Lisp , Crystal , D , Dart , Delphi , Elixir , Erlang , Go , Haskell , Haxe , Io , Java , Nim , JavaScript ( Node.js ), Julia , Lua , Objective-C , OCaml , Perl , PHP , Pure Data , Python , R , Racket , Ruby , Rust , Scala , Smalltalk , Swift , and Tcl . Several client software programs exist in these languages. Redis maps keys to types of values. An important difference between Redis and other structured storage systems
1050-503: The BSD 3 clause: Former implementations include: Redis typically holds the whole dataset in memory. Versions up to 2.4 could be configured to use what they refer to as virtual memory in which some of the dataset is stored on disk, but this feature is deprecated. Persistence in Redis can be achieved through two different methods. First by snapshotting, where the dataset is asynchronously transferred from memory to disk at regular intervals as
1092-776: The Microsoft Limited Public License (Ms-LPL), the Microsoft Limited Reciprocal License (Ms-LRL), and the Microsoft Reference Source License (Ms-RSL). Prior to version 5, Scilab described itself as "the open source platform for numerical computation " but had a license that forbade commercial redistribution of modified versions. Versions 5 and later are distributed under the GPL -compatible CeCILL license. The Server Side Public License
1134-538: The SSPL. Amazon released a partially compatible but proprietary service named DocumentDB . In November 2020, Graylog announced that version 4.0 of its source-available release will be licensed under the SSPL. In January 2021, Elastic NV announced that future versions of their code in Elasticsearch and Kibana , licensed until then under the open-source Apache License 2.0 , would be dual-licensed instead under SSPL and their own Elastic license. Critics of
1176-491: The aforementioned provision is discriminatory towards specific fields of use. Specifically, this is discriminatory against users of the software that use proprietary software within their stack, as the license requires the open-sourcing of every part interacting with the service, which under these circumstances might not be possible. This is in violation of Points 6 and 9 of the Open Source Definition as used by
1218-435: The client for Linux, which is licensed under GPLv2 . BeeGFS source code is publicly available from their website, and because of this they claiming BeeGFS as "Open-Source" software; it is in fact not because this license prohibits distributing modified versions of the software, or using certain features of the software without authorization. Redis Redis ( / ˈ r ɛ d ɪ s / ; Remote Dictionary Server )
1260-545: The code, to preserve the rights of the author to economically exploit it, but applies for a limited time, after which the code itself is considered to be available under Apache License or MIT License . The GitLab Enterprise Edition License is used exclusively by GitLab 's commercial offering. GitLab Inc. openly discloses that the EE License makes their Enterprise Edition product "proprietary, closed source code." GitLab also releases an open-source Community Edition under
1302-413: The database engine but rather specific operations that are performed on given abstract data types. Therefore data must be stored in a way which is suitable later for fast retrieval. The retrieval is done without help from the database system in form of secondary indexes, aggregations or other common features of traditional RDBMS. The Redis implementation makes heavy use of the fork system call, to duplicate
Server Side Public License - Misplaced Pages Continue
1344-503: The first data type, the list. After a few weeks of using the project internally with success, Sanfilippo decided to open source it, announcing the project on Hacker News . The project began to get traction, particularly among the Ruby community, with GitHub and Instagram being among the first companies adopting it. Sanfilippo was hired by VMware in March, 2010. In May, 2013, Redis
1386-428: The license to the Open Source Initiative (OSI) for approval. The company withdrew its submission in 2019. In January 2021, following the re-licensing move by Elastic, OSI released a statement declaring that the SSPL does not comply with its Open Source Definition because it discriminates against specific fields of endeavor, describing it as a "fauxpen" source license. Source-available software Any software
1428-455: The most popular databases overall. Redis is used in companies like Twitter , Airbnb , Tinder , Yahoo , Adobe , Hulu , Amazon and OpenAI . Redis supports different kinds of abstract data structures , such as strings , lists , maps , sets , sorted sets, HyperLogLogs , bitmaps , streams , and spatial indices . The project was developed and maintained by Salvatore Sanfilippo, starting in 2009. From 2015 until 2020, he led
1470-464: The original developer of Redis, was trying to improve the scalability of his Italian startup, developing a real-time web log analyzer. After encountering significant problems in scaling some types of workloads using traditional database systems, Sanfilippo began in 2009 to prototype a first proof of concept version of Redis in Tcl . Later Sanfilippo translated that prototype to the C language and implemented
1512-411: The process holding the data, so that the parent process continues to serve clients while the child process writes the in-memory data to disk. According to monthly DB-Engines rankings , Redis is often the most popular key–value database . Redis has also been ranked the #4 NoSQL database in user satisfaction and market presence based on user reviews, the most popular NoSQL database in containers, and
1554-531: The re-licensing decision predicted that it would harm Elastic's ecosystem, and Amazon responded with plans to fork the projects for continued development of versions licensed under the Apache License. Other users of the Elasticsearch ecosystem, led by Amazon Web Services , and including Logz.io , CrateDB , Red Hat and Aiven, also collaborated on the open source fork, leading to the creation of
1596-505: The same node, and commands related to database selection operations are unavailable. A Redis cluster can scale up to 1,000 nodes, achieve "acceptable" write safety and to continue operations when some nodes fail. Due to the nature of the database design, typical use cases are session caching, full page cache, message queue applications, leaderboards and counting among others. The publish–subscribe messaging paradigm allows real-time communication between servers. Amazon Web Services offers
1638-463: The service themselves) must be released under the SSPL. The license is considered non-free by the Open Source Initiative , Debian and Red Hat , as it contains conditions that are unduly discriminatory towards commercial use of the software. In 2007 Michael Tiemann , president of OSI, had criticized companies such as SugarCRM for promoting their software as "open source" when in fact it did not have an OSI-approved license. In SugarCRM's case, it
1680-584: Was because the software is so-called " badgeware " since it specified a "badge" that must be displayed in the user interface. SugarCRM's open source version was re-licensed under the GPL version 3 in 2007, and later the GNU Affero GPL version 3 in 2010. The TrueCrypt License was used by the TrueCrypt disk encryption utility . When TrueCrypt was discontinued, the VeraCrypt fork switched to
1722-417: Was designed so that data is always modified and read from the main computer memory, but also stored on disk in a format that is unsuitable for random data access. The formatted data is only reconstructed into memory once the system restarts. Redis also provides a data model that is very unusual compared to a relational database management system (RDBMS). User commands do not describe a query to be executed by
Server Side Public License - Misplaced Pages Continue
1764-493: Was sponsored by Pivotal Software (a VMware spin-off). In June 2015, development became sponsored by Redis Labs . In August 2018, Redis Labs announced the switch to a source-available software license, Server Side Public License for some of the optional modules available for Redis, while affirming that the core software will remain BSD-licensed. In October 2018, Redis 5.0 was released, introducing Redis Stream –
#234765