Giter VIP home page Giter VIP logo

lightfall / rethinkdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rethinkdb/rethinkdb_rebirth

0.0 2.0 0.0 121.94 MB

The open-source database for the realtime web.

Home Page: https://rethinkdb.com

License: Other

Makefile 0.31% Dockerfile 0.03% JavaScript 0.54% XSLT 0.05% Shell 0.29% Python 17.58% HTML 0.11% Ruby 0.30% CSS 0.04% Roff 0.01% AppleScript 0.01% Haskell 0.06% Perl 0.03% C 0.35% C++ 80.28%

rethinkdb's Introduction

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:

rethinkdb's People

Contributors

srh avatar timmaxw avatar mlucy avatar jdoliner avatar neumino avatar wmrowan avatar larkost avatar rntz avatar vexocide avatar frank-trampe avatar mglukhovsky avatar danielmewes avatar atnnn avatar asakatida avatar tryneus avatar deontologician avatar al3xandru avatar eliangidoni avatar jordanlewis avatar coffeemug avatar encryptio avatar marshall007 avatar gchpaco avatar raitobezarius avatar takluyver avatar igorlukanin avatar aleaxander avatar gabor-boros avatar dalanmiller avatar jipperinbham avatar

Watchers

James Cloos avatar Hakan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.