Development status Active Operating system | ||
Initial release 24 July 2009 (2009-07-24) Stable release 2.3.5 / August 27, 2016 (2016-08-27) Repository github.com/rethinkdb/rethinkdb |
RethinkDB is a free and open-source, NoSQL, distributed document-oriented database originally created by the company of the same name. The database stores JSON documents with dynamic schemas, and is designed to facilitate pushing real-time updates for query results to applications. Initially seed funded by Y Combinator in June 2009, the company announced in October 2016 that it had been unable to build a sustainable business and its products would in future be entirely open-sourced without commercial support.
Contents
History
RethinkDB was founded in 2009, and open-sourced at version 1.2 in 2012. In 2015, RethinkDB released version 2.0, announcing that it was production-ready. On October 5, 2016, the company announced it was shutting down, transitioning members of its engineering team to Stripe, and would no longer offer production support. On February 6, 2017, The Cloud Native Computing Foundation purchased the rights to the source code and relicensed it under the Apache License 2.0.
ReQL
RethinkDB uses the ReQL query language, an internal (embedded) domain-specific language officially available for Ruby, Python, Java and JavaScript (including Node.js). It has support for table joins, groupings, aggregations and functions. There are also unofficial, community-supported drivers for other languages, including C#, Clojure, Erlang, Go, Haskell, Lua, and PHP.
Popularity
According to the DB-Engines.com rankings, as of February 2016, it was the 46th most popular database. The most recent major version 2.3 was released in April 2016
Comparison with other NoSQL databases
RethinkDB can also be significantly slower than other NoSQL databases like MongoDB. But it provides a helpful web-based administrative user interface for managing the database. Some of its API syntax can result in code that is visually messy.
A distinguishing feature of RethinkDB is the first class support for real-time change feeds. A change query returns a cursor which allows blocking or non-blocking requests to keep track of a potentially infinite stream of real-time changes.