• This repository has been archived on 07/May/2022
  • Stars
    star
    1,000
  • Rank 45,878 (Top 1.0 %)
  • Language
    C++
  • License
    Other
  • Created over 6 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The open-source database for the realtime web.

RethinkDB

Build Status Codacy Badge Coverage Status

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 tolerance

RethinkDB 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

$ 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

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:

$ 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:

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:

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:

r.table('tv_shows').count()

Finally, letโ€™s do a slightly more sophisticated query. Letโ€™s find all shows with more than 100 episodes.

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.

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-dev

Then, to build:

./configure --allow-fetch
# or run ./configure --allow-fetch CXX=clang++

make -j4
# or run make -j4 DEBUG=1

sudo make install
# or run ./build/debug_clang/rethinkdb

Need help?

Find us at Spectrum and on Twitter. You can also report an issue.

Contributing

RethinkDB is currently being developed by a growing and passionate community. We could use your help too! Check out our contributing guidelines to get started.

Where's the changelog?

We keep a list of changes and feature explanations here.

Donors

  • The development of data compression and RethinkDB's new art is sponsored by AIDAX:
    AIDAX

  • Our test infrastructure is sponsored by DigitalOcean:

More Repositories

1

rethinkdb

The open-source database for the realtime web.
C++
26,681
star
2

horizon

Horizon is a realtime, open-source backend for JavaScript apps.
JavaScript
6,782
star
3

rethinkdb-go

Go language driver for RethinkDB
Go
1,648
star
4

rethinkdb-rs

A native RethinkDB driver written in Rust
Rust
210
star
5

rethinkdb-example-nodejs-chat

A node.js chat application running on rethinkdb
CSS
203
star
6

rethinkdb-example-nodejs

JavaScript
137
star
7

rethinkdb-example-flask-backbone-todo

A canonical backbone todo application running on flask and RethinkDB
JavaScript
122
star
8

docs

RethinkDB documentation
CSS
117
star
9

elasticsearch-river-rethinkdb

Java
73
star
10

rethinkdb-python

Python driver for RethinkDB
Python
64
star
11

logstash-input-rethinkdb

Ruby
55
star
12

rethinkdb-dockerfiles

Dockerfiles for past and present versions of RethinkDB.
Dockerfile
55
star
13

example-pubsub

JavaScript
53
star
14

cats-of-instagram

JavaScript
51
star
15

rethinkdb-desktop

RebirthDB admin as desktop app
JavaScript
50
star
16

node-login

A fork of braitsch/node-login template for quickly building login systems on top of Node.js & RethinkDB
JavaScript
43
star
17

rails-nobrainer-blog

The Rails tutorial blog app using NoBrainer ODM for RethinkDB
Ruby
42
star
18

rethinkdb-example-sinatra-pastie

A canonical Sinatra Pastie-like application running on RethinkDB
Ruby
41
star
19

beerthink

JavaScript
28
star
20

protobuf-plugin-closure

Fork of protobuf compiler
C++
25
star
21

horizon-docs

24
star
22

rethink-status

JavaScript
23
star
23

rethinkdb-pubnub-liveblog

JavaScript
22
star
24

earthquake-map

JavaScript
22
star
25

angular2-typescript-example

A RethinkDB chat app built in Typescript with Node.js and Angular 2
TypeScript
22
star
26

horizon-thinkmark

A social bookmark management tool built with Horizon and Vue.js
CSS
21
star
27

rethinkdb-java

Official RethinkDB Java client
Java
21
star
28

rethinkdb-example-webpy-blog

A canonical web.py blog using RethinkDB
Python
20
star
29

example-rabbitmq

Python
18
star
30

rethinkdb-example-bottle-ember-todo

A canonical ember.js todo application running on bottle and RethinkDB
CSS
16
star
31

typescript-horizon-workshop

TypeScript
15
star
32

rethinkdb-admin

RethinkDB Next Generation Admin UI
TypeScript
14
star
33

nodecellar-rethinkdb

Sample app built with Backbone.js, Twitter Bootstrap, Node.js, Express, RethinkDB forked from ccoenraets/nodecellar
JavaScript
13
star
34

rethinkdb-photobooth

JavaScript
13
star
35

rethinkdb-mobile-push

Swift
13
star
36

rethinkdb-nix

Nix-based RethinkDB CI
Nix
12
star
37

prometheus-exporter

Prometheus rethinkdb statistics exporter
Go
12
star
38

aspnet-signalr-chat

A sample RethinkDB chat demo built with ASP.NET and SignalR
JavaScript
12
star
39

java-demo

A RethinkDB app built with Java and Vert.x
JavaScript
11
star
40

react-horizon-workshop

JavaScript
11
star
41

rethinkdb-ruby

Ruby
8
star
42

www

The RethinkDB website.
SCSS
7
star
43

rethinkdb-website

JavaScript
6
star
44

s3-batch-upload

JavaScript
5
star
45

reql

Reql spec/parseable syntax or ast defs
5
star
46

rethinkdb-ngconf

Building realtime apps with RethinkDB and Angular (slides)
CSS
5
star
47

geojson-streetmaps

CSS
5
star
48

admin

DEPRECATED
JavaScript
4
star
49

rethinkdb-javascript

JavaScript driver for RethinkDB
CoffeeScript
3
star
50

countdown

Python
2
star
51

rethinkdb-download

RethinkDB download service
Ruby
2
star
52

rethinkdb-kotlin-jvm

Kotlin extensions for the RethinkDB Java driver
Kotlin
2
star
53

www-thinkers

CSS
1
star
54

rethinkdb-update

Update server of rethinkdb
Python
1
star
55

performance-reports

All of rethinkdb/rethinkdb's performance reports and results.
PHP
1
star
56

rethinkdb-digitalocean

Build a specific RethinkDB version as a DigitalOcean 1-click image.
Shell
1
star