Code Monkey home page Code Monkey logo

docs's Introduction

CII Best Practices Codacy Badge

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 the first open-source scalable database built for realtime applications. It exposes a new database access model, in which the developer can tell the database to continuously push updated query results to applications without polling for changes. RethinkDB allows developers to build scalable realtime apps in a fraction of the time with less effort.

To learn more, check out rethinkdb.com.

Not sure what types of projects RethinkDB can help you build? Here are a few examples:

Quickstart

For a thirty-second RethinkDB quickstart, check out rethinkdb.com/docs/quickstart.

Or, get started right away with our ten-minute guide in these languages:

Besides our four official drivers, we also have many third-party drivers supported by the RethinkDB community. Here are a few of them:

Looking to explore what else RethinkDB offers or the specifics of ReQL? Check out our RethinkDB docs and ReQL API.

Building

First install some dependencies. For example, on Ubuntu or Debian:

sudo apt-get install build-essential protobuf-compiler \
    # python \  # for older distros
    python3 python-is-python3 \
    libprotobuf-dev libcurl4-openssl-dev \
    libncurses5-dev libjemalloc-dev wget m4 g++ libssl-dev

Generally, you will need

  • GCC or Clang
  • Protocol Buffers
  • jemalloc
  • Ncurses
  • Python 2 or Python 3
  • 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

See WINDOWS.md and mk/README.md for build instructions for Windows and FreeBSD.

Need help?

A great place to start is rethinkdb.com/community. Here you can find out how to ask us questions, reach out to us, or report an issue. You'll be able to find all the places we frequent online and at which conference or meetups you might be able to meet us next.

If you need help right now, you can also find us on Slack, Twitter, or IRC at #rethinkdb on Freenode.

Contributing

RethinkDB was built by a dedicated team, but it wouldn't have been possible without the support and contributions of hundreds of people from all over the world. We could use your help too! Check out our contributing guidelines to get started.

Donors

  • CNCF
  • Digital Ocean provides infrastructure and servers needed for serving mission-critical sites like download.rethinkdb.com or update.rethinkdb.com
  • Atlassian provides OSS license to be able to handle internal tickets like vulnerability issues
  • Netlify OSS license to be able to migrate rethinkdb.com
  • DNSimple provides DNS services for the RethinkDB project
  • ZeroTier sponsored the development of per-table configurable write aggregation including the ability to set write delay to infinite to create a memory-only table (PR #6392)

Licensing

RethinkDB is licensed by the Linux Foundation under the open-source Apache 2.0 license. Portions of the software are licensed by Google and others and used with permission or subject to their respective license agreements.

Where's the changelog?

We keep a list of changes and feature explanations here.

docs's People

Contributors

ahruygt avatar asakatida avatar atnnn avatar ba0f3 avatar brettgriffin avatar chipotle avatar clovergaze avatar coffeemug avatar dalanmiller avatar danielcompton avatar danielmewes avatar deontologician avatar dependabot-preview[bot] avatar dependabot[bot] avatar epc avatar gabor-boros avatar linkyndy avatar marshall007 avatar mglukhovsky avatar mlucy avatar neumino avatar pilwon avatar raspo avatar rushmorem avatar srh avatar thejsj avatar tryneus avatar untra avatar wkich avatar yoeori avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

API: `next` 404s for Python and Ruby

next and other commands need to have YAML flags to indicate they don't exist in other languages. They currently 404 because links in the language switcher are active.

Add documentation on cluster issues

There are a limited set of issues that can be presented in the UI, for example:

  • Servers that should be removed from the cluster
  • Metadata conflicts
  • Redundancy issues
  • Zombie servers

...and a few more. It would be useful to describe these different cases, and the consequences of resolving them (and would help simplify some error messages if we had a public resource for users to refer to).

Doc about cluster issues

Issues that are not documented:

  • Dead machine
  • Zombie machine
  • Vector clock
  • Unsatisfiable goals
  • Log file not available
  • Port conflict
  • Name conflict

Add a page describing the limitations of RethinkDB

This was suggested by a user on HN a few releases back. Examples of limitations that would be useful to describe are:

  • maximum document size
  • maximum number of tables / databases
  • maximum number of shards
  • minimum disk space required

... to name a few.

API - Add a page about r.literal

The doc about r.literal is spread in filter and merge.

We should add a page about it (would it be only to help people google errors about r.literal).

We should add a doc section for driver developers

I'm not quite sure where this fits into your guys scheme but I think there should be a section in here somewhere to get driver developers started. One thing in particular that I think would be good to include is a rundown of optimizations we make in our drivers to get better performance such as converting to JSON and deserializing values lazily.

Add documentation on use cases for RethinkDB

Describing typical use cases for RethinkDB helps answer common questions like, "Is RethinkDB useful for tracking analytics?" or, "Can I use RethinkDB as an alternate data warehousing solution?"

Add docs for rethinkdb proxy

We don't have any docs for rethinkdb proxy and it's actually a very useful feature that I've described to a number of people over IRC and had them be delighted. Let's add docs for it.

API: add time complexity to commands

@kevincox said this in the original issue (rethinkdb/rethinkdb#620):

When selecting and designing with a database it is important to know the cost of
what queries in what situations. For example, it is often reasonable to use a
quadratic query, if you know the size of your dataset will be under a certain size.

It would be very useful to have the expected time complexities of the queries in the
documentation and the cases for which the complexity will be different. This is
something that Redis does really well for example.

This was met with complete agreement by everyone involved.

API - Tell users to use parentheses with | and &

This query doesn't behave as most of the people would expect

r.table("users").filter( lambda user:
    user.has_fields("age") | user["age"] == 0
).run(conn)

What they want is probably this

r.table("users").filter( lambda user:
    user.has_fields("age") | (user["age"] == 0)
).run(conn)

API docs: versioning

When we have an LTS release, we will need versioned API docs so that changes in semantics or additions / removals of commands don't confuse users.

Add an example application / getting started guide for Rails

Suggested by krz on IRC:

<krz> is there a getting started guide for rails applications?
<krz> you guys should really come up with a rails demo app using the ruby wrapper
<krz> just thought, if there was a guide up, just to get integrated with rails. that would be awesome

Update links to the API

We have some links that point to the old API (like /api/#py:selecting_data-table) that we need to update.

Working on it now.

API: add sample input and output to commands

We should consider adding sample table data and the output of ReQL commands to every example.

This would likely require a widget with three tabs: example, sample data, and output. We should look at other complex APIs to find constructive examples.

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.