A Go driver for RethinkDB providing a native interface to query and manage the NoSQL database.
RethinkDB-go is a Go driver for RethinkDB, a NoSQL database. It allows Go applications to connect to RethinkDB clusters, execute ReQL queries, and manage data with native Go types. The driver handles connection pooling, data serialization, and provides features like mocking for testing.
Go developers building applications that require real-time data handling, scalable NoSQL storage, or leveraging RethinkDB's changefeeds for reactive programming.
It offers a fully-featured, idiomatic Go interface to RethinkDB with robust connection management, comprehensive query support, and built-in testing utilities, making it the go-to choice for Go projects using RethinkDB.
Go language driver for RethinkDB
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses struct tags for seamless mapping between Go types and RethinkDB documents, supporting features like omitempty and custom keys, as detailed in the encoding/decoding section.
Built-in connection pool safe for concurrent goroutines, with configurable capacity and automatic host discovery for clusters, per the ConnectOpts documentation.
Includes a mocking framework based on testify, allowing unit tests of queries without a live database, demonstrated in the mocking examples with channels and functions.
Handles RethinkDB-specific features like changefeeds, geometry types, OpenTracing integration, and pseudo-types, enabling complex real-time applications.
RethinkDB is no longer commercially supported and has a smaller community, leading to fewer resources, slower updates, and potential long-term maintenance risks.
The README explicitly states that DiscoverHosts does not work with user authentication, forcing a trade-off between automatic cluster management and secure access control.
Implementing features like compound keys or custom marshaling requires intricate struct tagging and deep understanding of ReQL, which can be error-prone for newcomers.