Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. rethinkdb

rethinkdb

MITElixir

A pure Elixir client for RethinkDB implementing the JSON protocol with multiplexed connections and full ReQL support.

GitHubGitHub
491 stars64 forks0 contributors

What is rethinkdb?

RethinkDB Elixir is a database client library that allows Elixir applications to connect to and query RethinkDB databases using the native JSON protocol. It provides a pure Elixir implementation of ReQL, enabling developers to build real-time applications with features like changefeeds, connection pooling, and multiplexed queries. The library solves the need for a reliable, idiomatic Elixir interface to RethinkDB's document-oriented, real-time database system.

Target Audience

Elixir developers building applications that require real-time data synchronization, particularly those leveraging RethinkDB's changefeeds and scalable document storage. It's also suitable for teams migrating from other RethinkDB clients or seeking a native Elixir driver with OTP supervision.

Value Proposition

Developers choose RethinkDB Elixir because it offers a stable, full-featured ReQL implementation without external dependencies, integrates seamlessly with Elixir's concurrency model and supervision trees, and provides multiplexed connections for efficient query handling. Its pure Elixir codebase aligns with the ecosystem's emphasis on reliability and maintainability.

Overview

Rethinkdb client in pure elixir (JSON protocol)

Use Cases

Best For

  • Building real-time Elixir applications with RethinkDB changefeeds
  • Implementing connection pooling for high-concurrency database access
  • Migrating from other RethinkDB clients to a native Elixir solution
  • Developing supervised, fault-tolerant database connections in OTP applications
  • Executing complex ReQL queries using Elixir's lambda macros
  • Creating scalable backends that leverage RethinkDB's document model and indexing

Not Ideal For

  • Projects requiring active maintenance and updates to support newer RethinkDB features
  • Teams wanting integrated changefeed support without managing separate dependencies
  • Developers who rely heavily on varargs in ReQL queries for simplicity
  • New applications where community support and documentation freshness are critical

Pros & Cons

Pros

Pure Elixir Implementation

No external C dependencies, leveraging Elixir's concurrency and fault-tolerance for seamless integration with the BEAM VM, as highlighted in the Key Features.

Multiplexed Connections

Single connection supports parallel queries via pipelining, reducing overhead and enabling efficient sharing across processes, which is ideal for high-concurrency applications.

Full ReQL Support

Comprehensive implementation of RethinkDB's query language up to version 2.0, including filters, maps, indexes, and changefeeds, ensuring compatibility with core database features.

OTP Supervision Integration

Built-in support for supervised connections, allowing reliable, fault-tolerant database connections that fit naturally into Elixir's OTP application structure.

Lambda Macros

Enables use of Elixir operators within ReQL queries via a lambda macro, making code more intuitive and expressive, as demonstrated in the Query section.

Cons

Inactive Development

The maintainer has stated they are not actively developing the project, risking bugs, security vulnerabilities, and lack of updates for newer RethinkDB versions or Elixir releases.

Fragmented Changefeed Support

Changefeeds are extracted into a separate package (rethinkdb_changefeed), adding complexity, dependency management, and potential integration hurdles for real-time features.

Varargs Limitation

Due to Elixir's language constraints, queries like getAll require array wrapping instead of native varargs, making some ReQL operations less intuitive and more verbose, as admitted in the README.

Sparse Documentation

The README links to API documentation but lacks comprehensive examples and updates, and with development stalled, external resources may be outdated or scarce.

Frequently Asked Questions

Quick Stats

Stars491
Forks64
Contributors0
Open Issues15
Last commit7 years ago
CreatedSince 2015

Tags

#reql#database-driver#elixir#otp#connection-pooling#rethinkdb#real-time

Built With

E
Elixir

Included in

Elixir13.1kRethinkDB116
Auto-fetched 1 day ago

Related Projects

ectoecto

A toolkit for data mapping and language integrated query.

Stars6,460
Forks1,475
Last commit3 days ago
gorethinkgorethink

Go language driver for RethinkDB

Stars1,649
Forks177
Last commit6 months ago
postgrexpostgrex

PostgreSQL driver for Elixir

Stars1,210
Forks302
Last commit5 days ago
eventstoreeventstore

Event store using PostgreSQL for persistence

Stars1,149
Forks155
Last commit13 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub