A Clojure client library for RethinkDB, providing a query API that closely mirrors the official JavaScript driver.
clj-rethinkdb is a Clojure client library for RethinkDB, a real-time NoSQL database. It provides a query API that closely mirrors RethinkDB's official JavaScript driver, allowing Clojure developers to interact with RethinkDB using idiomatic Clojure syntax. The library supports all RethinkDB features, including changefeeds, secondary indexes, and atomic operations, enabling real-time data synchronization and complex queries.
Clojure developers building real-time applications, such as collaborative tools, dashboards, or live data feeds, who need a native, functional interface to RethinkDB. It's also suitable for teams migrating from JavaScript-based RethinkDB clients to Clojure.
Developers choose clj-rethinkdb for its close alignment with RethinkDB's JavaScript API, reducing the learning curve and easing migration. Its support for core.async and functional programming patterns makes it a natural fit for Clojure ecosystems, offering robust real-time capabilities without sacrificing idiomatic Clojure design.
clj-rethinkdb is a native Clojure client for the RethinkDB database, enabling developers to build real-time applications with a functional, idiomatic interface. It supports all RethinkDB features, including changefeeds, secondary indexes, and atomic operations, making it a robust choice for Clojure projects requiring scalable, real-time data handling.
:async? flag for non-blocking operations.with-open.clj-rethinkdb prioritizes API consistency with RethinkDB's official drivers while embracing Clojure's functional programming idioms, providing a seamless bridge between the database's real-time capabilities and Clojure's expressive syntax.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The query API closely matches RethinkDB's official JavaScript driver, easing migration and reducing the learning curve, as stated in the README's usage section.
Supports asynchronous query execution via the :async? flag, enabling non-blocking operations ideal for real-time apps, demonstrated in the core.async example.
Handles all RethinkDB operations, including complex queries, changefeeds, and atomic updates, ensuring no functionality gaps for scalable data handling.
Uses functional programming patterns and seamless connection management with with-open, fitting naturally into Clojure codebases, as shown in the examples.
The full documentation is marked as 'work in progress,' and the README directs users to external JavaScript docs, indicating reliance on incomplete or third-party resources.
Tied to RethinkDB, which has reduced active development since the original company's shutdown, potentially limiting long-term support and community updates.
Newer releases drop support for older Clojure and Java versions (e.g., Clojure 1.6, Java 7), forcing upgrades and potentially breaking legacy setups, as noted in the changelog.