Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rethinkdb/rethinkdb_rebirth
The open-source database for the realtime web.
https://github.com/rethinkdb/rethinkdb_rebirth
Last synced: 5 days ago
JSON representation
The open-source database for the realtime web.
- Host: GitHub
- URL: https://github.com/rethinkdb/rethinkdb_rebirth
- Owner: rethinkdb
- License: other
- Archived: true
- Created: 2018-05-16T14:40:12.000Z (over 6 years ago)
- Default Branch: next
- Last Pushed: 2019-02-07T14:18:23.000Z (over 5 years ago)
- Last Synced: 2024-08-01T15:08:08.479Z (3 months ago)
- Language: C++
- Homepage: https://rethinkdb.com
- Size: 119 MB
- Stars: 1,000
- Watchers: 70
- Forks: 42
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-repositories - rethinkdb/rethinkdb_rebirth - The open-source database for the realtime web. (C++)
README
# RethinkDB
[![Build Status](https://travis-ci.org/rethinkdb/rethinkdb.svg?branch=next)](https://travis-ci.org/rethinkdb/rethinkdb)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e486b20dee3141c89dcb974fe1ae16de)](https://www.codacy.com/app/rethinkdb/rethinkdb?utm_source=github.com&utm_medium=referral&utm_content=rethinkdb/rethinkdb&utm_campaign=Badge_Grade) [![Coverage Status](https://coveralls.io/repos/github/rethinkdb/rethinkdb/badge.svg?branch=next)](https://coveralls.io/github/rethinkdb/rethinkdb?branch=next)## What is RethinkDB?
* **Open-source** database for building realtime web applications
* **NoSQL** database that stores schemaless JSON documents
* **Distributed** database that is easy to scale
* **High availability** database with automatic failover and robust fault toleranceRethinkDB is an open-source scalable database built for realtime applications. It exposes a new database access model -- instead of
polling for changes, the developer can tell the database to continuously push updated query results to applications
in realtime. RethinkDB allows developers to build scalable realtime apps in a fraction of the time with less effort.## Quick start
### 1. Install the server
To install RethinkDB on your machine (only the `amd64` / `x86_64` architecture is currently supported), run the following:
#### **Ubuntu** `Trusty`, `Xenial`, `Bionic` and **Debian** `Jessie`, `Stretch` versions
```bash
$ source /etc/lsb-release && echo "deb https://dl.bintray.com/rethinkdb/apt $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list$ wget -qO- https://dl.bintray.com/rethinkdb/keys/pubkey.gpg | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install rethinkdb
```#### **Centos 7**
```bash
sudo wget https://dl.bintray.com/rethinkdb/rpm/centos/7/x86_64/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
sudo yum install rethinkdb
```### 2. Start the server
Run the following command from your terminal:
```bash
$ rethinkdb
...
Listening for intracluster connections on port 29015
Listening for client driver connections on port 28015
Listening for administrative HTTP connections on port 8080
Listening on cluster addresses: 127.0.0.1, ::1
Listening on driver addresses: 127.0.0.1, ::1
Listening on http addresses: 127.0.0.1, ::1
...
Server ready ...
```Point your browser to localhost:8080. You’ll see an administrative UI where you can control the cluster
(which so far consists of one server), and play with the query language.### 3. Run some queries
Click on the Data Explorer tab in the browser. You can manipulate data using JavaScript straight from your browser.
By default, RethinkDB creates a database named `test`. Let’s create a table:```javascript
r.db('test').tableCreate('tv_shows')
```Use the “Run” button or Shift+Enter to run the query. Now, let’s insert some JSON documents into the table:
```javascript
r.table('tv_shows').insert([{ name: 'Star Trek TNG', episodes: 178 },
{ name: 'Battlestar Galactica', episodes: 75 }])
```We’ve just inserted two rows into the tv_shows table. Let’s verify the number of rows inserted:
```javascript
r.table('tv_shows').count()
```Finally, let’s do a slightly more sophisticated query. Let’s find all shows with more than 100 episodes.
```javascript
r.table('tv_shows').filter(r.row('episodes').gt(100))
```
As a result, we of course get the best science fiction show in existence.### Next steps
Congratulations on your progress! Now check out the documentation of any of our drivers below to dive deeper.
* **Elixir** - [rethinkdb-elixir](https://github.com/rethinkdb/rethinkdb-elixir)
* **Go** - [rethinkdb-go](https://github.com/rethinkdb/rethinkdb-go)
* **Haskell** - [rethinkdb-haskell](https://github.com/rethinkdb/rethinkdb-haskell)
* **Java** - [rethinkdb-java](https://github.com/rethinkdb/rethinkdb-java)
* **JavaScript** - [rethinkdb-js](https://github.com/rethinkdb/rethinkdb-js)
* **Lua** - [rethinkdb-lua](https://github.com/rethinkdb/rethinkdb-lua)
* **PHP** - [rethinkdb-php](https://github.com/rethinkdb/rethinkdb-php)
* **Python** - [rethinkdb-python](https://github.com/rethinkdb/rethinkdb-python)
* **Ruby** - [rethinkdb-ruby](https://github.com/rethinkdb/rethinkdb-ruby)
* **Rust** - [rethinkdb-rs](https://github.com/rethinkdb/rethinkdb-rs)
* **TypeScript** - [rethinkdb-ts](https://github.com/rethinkdb/rethinkdb-ts)More detailed and updated documentation is coming soon!
## Building
First install some dependencies. For example, on Ubuntu or Debian:
sudo apt-get install build-essential protobuf-compiler python \
libprotobuf-dev libcurl4-openssl-dev libboost-all-dev \
libncurses5-dev libjemalloc-dev libssl-dev wget m4 g++Generally, you will need
* GCC or Clang
* Protocol Buffers
* jemalloc
* Ncurses
* Boost
* Python 2
* libcurl
* libcrypto (OpenSSL)
* libssl-devThen, to build:
./configure --allow-fetch
# or run ./configure --allow-fetch CXX=clang++make -j4
# or run make -j4 DEBUG=1sudo make install
# or run ./build/debug_clang/rethinkdb## Need help?
Find us at [Spectrum](https://spectrum.chat/rethinkdb) and on [Twitter](https://twitter.com/rethinkdb). You can also
[report an issue](https://github.com/rethinkdb/rethinkdb/issues).## Contributing
RethinkDB is currently being developed by a growing and passionate community. We could use your help too!
Check out our [contributing guidelines](CONTRIBUTING.md) to get started.## Where's the changelog?
We keep [a list of changes and feature explanations here](NOTES.md).
## Donors
* The development of data compression and RethinkDB's new art is sponsored by [AIDAX](http://www.aidaxbi.com/):
[![AIDAX](images/sponsors/AIDAX_logo_whole.png)](http://www.aidaxbi.com/)* Our test infrastructure is sponsored by [DigitalOcean](https://www.digitalocean.com/):