Kivik v4.0 is out!

Oct 26, 2023 • Jonathan Hall

Three and a half years since the last major release of Kivik, I’m happy to announce the latest major update to Kivik, version 4.0.

Kivik 4.0 includes a number of breaking changes compared to the 3.x series, as well as a number of other improvements and organizational changes.

Here are some highlights:

  • The iterator interface has been improved, particularly when passing multiple queries to a view.
  • The various official Kivik drivers have been integrated in to the main module.
  • Options are now functional options, rather than a plain map[string]interface{} as before.
  • An effort has been made to make different functions with similar result types more consistent.
  • Kivik now implements the CouchDB replication protocol. This means you can manage your own replications (in contrast to simply asking CouchDB to trigger a replication for you). This is most useful for backups or when bootstrapping your CouchDB instance, as you can now replicate between CouchDB and a filesystem!
  • The kivik command line tool has been added, which allows you to interact with CouchDB more easily from the command line. Tired of curling to configure and test CouchDB? Try the kivik CLI tool instead!

See the project README for a more complete list of breaking changes, especially if you are upgrading from Kivik 3.

Of course, just because Kivik 4 is out, doesn’t mean I’m out of ideas for improving it. I still have big plans, and will continue to chip away at them as time permits. A few things I hope to make progress on in the coming months:

  • Support for full text search
  • Continue to flesh out the filesystem and in-memory drivers
  • Improve the replication protocol implementation. The current version works, but doesn’t use all of the efficiency gains made possible with a full implementation.

And of course, I’ll continue to respond to bug reports and feature requests, as I receive them.

Thanks for using Kivik and CouchDB!