A pure Elixir client for RethinkDB implementing the JSON protocol with multiplexed connections and full ReQL support.
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.
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.
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.
Rethinkdb client in pure elixir (JSON protocol)
No external C dependencies, leveraging Elixir's concurrency and fault-tolerance for seamless integration with the BEAM VM, as highlighted in the Key Features.
Single connection supports parallel queries via pipelining, reducing overhead and enabling efficient sharing across processes, which is ideal for high-concurrency applications.
Comprehensive implementation of RethinkDB's query language up to version 2.0, including filters, maps, indexes, and changefeeds, ensuring compatibility with core database features.
Built-in support for supervised connections, allowing reliable, fault-tolerant database connections that fit naturally into Elixir's OTP application structure.
Enables use of Elixir operators within ReQL queries via a lambda macro, making code more intuitive and expressive, as demonstrated in the Query section.
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.
Changefeeds are extracted into a separate package (rethinkdb_changefeed), adding complexity, dependency management, and potential integration hurdles for real-time features.
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.
The README links to API documentation but lacks comprehensive examples and updates, and with development stalled, external resources may be outdated or scarce.
A toolkit for data mapping and language integrated query.
Go language driver for RethinkDB
PostgreSQL driver for Elixir
Event store using PostgreSQL for persistence
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.