A common interface to CouchDB and CouchDB-like databases for Go and GopherJS.
Kivik is a Go library that provides a common interface for working with CouchDB and CouchDB-like databases. It solves the problem of fragmented client support across different CouchDB versions and implementations by offering a single, idiomatic API that works with CouchDB 1.6 through 3.x, PouchDB, and experimental backends.
Go developers building applications that interact with CouchDB or compatible databases, especially those needing cross-version compatibility or working with PouchDB in browser environments via GopherJS.
Developers choose Kivik for its clean, Go-idiomatic API, driver-based extensibility, and reliable support for multiple CouchDB versions and implementations without locking into a specific backend.
Common interface to CouchDB or CouchDB-like databases for Go and GopherJS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified API for CouchDB 1.6 through 3.x and PouchDB, eliminating the need for version-specific code and ensuring portable applications.
Modeled after Go's database/sql, it allows easy creation of custom backends and mocking with the mockdb driver, facilitating testing and flexibility.
Supports PouchDB via GopherJS, enabling CouchDB-like database functionality in web applications for offline-first scenarios.
Stable API with a comprehensive test suite and support for recent Go versions, making it reliable for production use as stated in the README.
Includes a command-line interface for database operations and replication, adding convenience for administrative tasks.
Major upgrades, like from v3 to v4, introduce significant API changes such as functional options replacing maps, requiring code migration and careful planning.
Drivers like FilesystemDB, MemoryDB, and SQLite are labeled as experimental in the README, meaning they may lack stability or full feature sets for production use.
Using PouchDB in browser environments relies on GopherJS, which can add complexity and potential compatibility issues with modern JavaScript tooling.