Skip to content

Releases: couchbase/couchbase-cxx-client

1.0.4

23 Nov 02:24
1.0.4
5355b0f
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.4
Full changelog: 1.0.3...1.0.4

Fixes

Features

Build and Test Infrastructure

  • Updates for YUM/RPM builders by @avsej in #691
  • Debian/Ubuntu packaging scripts by @avsej in #694
  • Fix packaging scripts on MacOS by @avsej in #698
  • Add scripts to produce APK files for Alpine Linux by @avsej in #685
Repository Links

MacOS X

brew tap couchbaselabs/homebrew-couchbase
brew install couchbase-cxx-client

RPM Linux Distributions

DIST=el9    # also: el8, amzn2023, fc40, fc41, suse.lp155
ARCH=x86_64 # also: aarch64

curl -L -o/etc/yum.repos.d/couchbase-cxx-client.repo \
  https://packages.couchbase.com/clients/cxx/repos/rpm/${DIST}/${ARCH}/couchbase-cxx-client.repo

dnf install couchbase-cxx-client couchbase-cxx-client-devel couchbase-cxx-client-tools
https://packages.couchbase.com/clients/cxx/repos/rpm/amzn2023/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/amzn2023/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el8/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el8/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el9/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el9/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc40/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc40/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc41/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc41/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/suse.lp155/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/suse.lp155/x86_64/couchbase-cxx-client.repo

DEB Linux Distributions

apt update && apt install curl gpg
DIST=noble  # also: jammy, bookworm
ARCH=x86_64 # also: aarch64

curl -L https://packages.couchbase.com/clients/cxx/repos/deb/${DIST}/${ARCH}/DEB-GPG-KEY.txt | \
  gpg --yes --dearmor -o /usr/share/keyrings/couchbase-archive-keyring.gpg

curl -L -o/etc/apt/sources.list.d/couchbase-cxx-client.sources \
  https://packages.couchbase.com/clients/cxx/repos/deb/${DIST}/${ARCH}/couchbase-cxx-client.sources

apt update
apt install couchbase-cxx-client couchbase-cxx-client-dev couchbase-cxx-client-tools
https://packages.couchbase.com/clients/cxx/repos/deb/bookworm/aarch64/couchbase-cxx-client.sources
https://packages.couchbase.com/clients/cxx/repos/deb/bookworm/x86_64/couchbase-cxx-client.sources
https://packages.couchbase.com/clients/cxx/repos/deb/jammy/aarch64/couchbase-cxx-client.sources
https://packages.couchbase.com/clients/cxx/repos/deb/jammy/x86_64/couchbase-cxx-client.sources
https://packages.couchbase.com/clients/cxx/repos/deb/noble/aarch64/couchbase-cxx-client.sources
https://packages.couchbase.com/clients/cxx/repos/deb/noble/x86_64/couchbase-cxx-client.sources

1.0.4-rc.1

14 Nov 22:49
1.0.4-rc.1
3f21222
Compare
Choose a tag to compare
1.0.4-rc.1 Pre-release
Pre-release

Full Changelog: 1.0.3...1.0.4-rc.1

What's Changed

Repository Links

RPM Linux Distributions

DIST=el9    # also: el8, amzn2023, fc40, fc41, suse.lp155
ARCH=x86_64 # also: aarch64

curl -L -o/etc/yum.repos.d/couchbase-cxx-client.repo \
  https://packages.couchbase.com/clients/cxx/repos/rpm/${DIST}/${ARCH}/couchbase-cxx-client.repo

dnf install couchbase-cxx-client couchbase-cxx-client-devel couchbase-cxx-client-tools
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/amzn2023/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/amzn2023/x86_64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/el8/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/el8/x86_64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/el9/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/el9/x86_64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/fc40/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/fc40/x86_64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/fc41/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/fc41/x86_64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/suse.lp155/aarch64/couchbase-cxx-client.repo
https://sdk-snapshots.couchbase.com/clients/cxx/repos/rpm/suse.lp155/x86_64/couchbase-cxx-client.repo

DEB Linux Distributions

apt update && apt install curl gpg
DIST=noble  # also: jammy, bookworm
ARCH=x86_64 # also: aarch64

curl -L https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/${DIST}/${ARCH}/DEB-GPG-KEY.txt | \
  gpg --yes --dearmor -o /usr/share/keyrings/couchbase-archive-keyring.gpg

curl -L -o/etc/apt/sources.list.d/couchbase-cxx-client.sources \
  https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/${DIST}/${ARCH}/couchbase-cxx-client.sources

apt update
apt install couchbase-cxx-client couchbase-cxx-client-dev couchbase-cxx-client-tools
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/bookworm/aarch64/couchbase-cxx-client.sources
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/bookworm/x86_64/couchbase-cxx-client.sources
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/jammy/aarch64/couchbase-cxx-client.sources
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/jammy/x86_64/couchbase-cxx-client.sources
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/noble/aarch64/couchbase-cxx-client.sources
https://sdk-snapshots.couchbase.com/clients/cxx/repos/deb/noble/x86_64/couchbase-cxx-client.sources

1.0.3

22 Oct 17:53
1.0.3
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.3
Full Changelog: 1.0.2...1.0.3

Fixes

Features

Columnar changes

Build and Test Infrastructure

Repository Links

RPM Linux Distributions

DIST=el9
ARCH=x86_64

curl -o/etc/yum.repos.d/couchbase-cxx-client.repo \
  https://packages.couchbase.com/clients/cxx/repos/rpm/${DIST}/${ARCH}/couchbase-cxx-client.repo
dnf install couchbase-cxx-client couchbase-cxx-client-devel couchbase-cxx-client-tools
https://packages.couchbase.com/clients/cxx/repos/rpm/amzn2023/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/amzn2023/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el8/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el8/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el9/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/el9/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc40/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/fc40/x86_64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/suse.lp155/aarch64/couchbase-cxx-client.repo
https://packages.couchbase.com/clients/cxx/repos/rpm/suse.lp155/x86_64/couchbase-cxx-client.repo

1.0.3-rc.2

16 Oct 16:09
1.0.3-rc.2
Compare
Choose a tag to compare
1.0.3-rc.2 Pre-release
Pre-release

Full Changelog: 1.0.3-rc.1...1.0.3-rc.2

What's Changed

1.0.3-rc.1

14 Oct 16:07
1.0.3-rc.1
Compare
Choose a tag to compare
1.0.3-rc.1 Pre-release
Pre-release

Full Changelog: 1.0.2...1.0.3-rc.1

What's Changed

1.0.2

23 Sep 19:28
1.0.2
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.2
Full Changelog: 1.0.1...1.0.2

Fixes

  • CXXCBC-577: Reduce duplicated code in http_component (#657).
  • CXXCBC-593: Apply configuration profile as the last step (#655).
  • CXXCBC-552: Cleanup network selection options (#651). Deprecates behavior_options#network() in favor to network_options#preferred_network()
  • Update code samples in API reference (#653).
  • CXXCBC-576: Ensure all HTTP sessions are stopped when closing the core cluster (#648).

Columnar changes

  • CXXCBC-577: Add columnar database management operations.
  • CXXCBC-588: Update timeout sent to server on each columnar query retry (#654).
  • CXXCBC-580: Report last error when timing out on columnar query retries (#650).

Build and Test Infrastructure

  • CXXCBC-303: Update build scripts to produce RPM packages (#660).
  • CXXCBC-597: Use static library for ASIO and update it to 1.31.0 (#658).
  • CXXCBC-596: Do not include tao_json_serializer.hxx by default (#656).
  • Include in string_hex.h (#652)

1.0.1

22 Aug 19:55
1.0.1
58d46d7
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.1
Full Changelog: 1.0.0...1.0.1

Enhancements

  • CXXCBC-564: Allow to specify all operations (Get, Replace, Delete, Insert and Query) in pillowfight workload (#640).
  • Improve logging of DNS client (#634).
  • CXXCBC-568: Cancel deferred operations when closing HTTP session manager (#643).

Fixes

  • CXXCBC-531: Fix memory leak in range scan implementation (#645, 610).
  • CXXCBC-573: Avoid uninitialized reads in the logger test (#610).
  • CXXCBC-572: Always initialize service_type (#610).
  • CXXCBC-569: Resolve cycle in shared pointers for transaction_context (#641).
  • CXXCBC-550]: Fixed use-after-move issue in command handler (#628)
  • Fix build of Ruby wrapper on Windows (#636).
  • Fix behaviour when reading is complete before returning HTTP streaming resp (#624).

Columnar changes

In this release new build mode for Columnar has been introduced. The CMake flag -DCOUCHBASE_CXX_CLIENT_COLUMNAR would produce special version of the library that is optimized for usage with Columnar deployments.

  • Add initial Columnar core implementation (#616).
  • CXXCBC-525: Open cluster connection in background (#621).
  • Use open_in_background when creating test cluster in Columnar mode (#625).
  • CXXCBC-542: Richer error information from columnar core (#626).
  • Update columnar log message, enable dispatch_timeout if in connection string (#627).
  • Add helper method for serializing ctx into columnar error message (#632).
  • Add columnar query positional params (#635).
  • CXXCBC-543: Add retries for columnar query (#637).
  • CXXCBC-562: Provide HTTP session manager with updated cluster (#638).
  • CXXCBC-556: Use versioned columnar query endpoint (#639).
  • CXXCBC-557: Add global columnar timeout config (#642).

1.0.0

26 Jun 23:32
1.0.0
65c8d1f
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.0
Full Changelog: 1.0.0-dp.15...1.0.0

Enhancements

  • CXXCBC-509: Allow to restrict replica set to selected server group. This feature allows to implement network optimization when traffic cost between server groups is higher than in the local group. In this case the application might select preferred server group in the connection options, and later opt-in for local operations during replica reads. Related tickets: CXXCBC-546, CXXCBC-513, CXXCBC-513, CXXCBC-509 (#614, #593, #587, #571, #566).

  • CXXCBC-530: Include 'min' parameter when encoding disjunction FTS queries (#604)

  • CXXCBC-394: Hide tao::json where it is possible. We still have taocpp/json headers in places where default JSON transcoder is being used.

  • CXXCBC-449: Do not expose ASIO in public API.

  • CXXCBC-381: Use std::shared_ptr for transactions_context and attempt_context. (#590)

  • CXXCBC-510: Support binary objects in transactions. This changes allows to use transcoders in transactions API. (#576)

  • Improvements in Vector Search:

    • Add invalid argument check. (#578)
    • CXXCBC-514 Support for base64 encoded vector types (#575)
    • CXXCBC-516: Return feature_not_available when upserting vector search index to incompatible cluster. (#572)
  • CXXCBC-407: Allow to use 0 as a max expiry for new collections. (#569)

  • CXXCBC-496: Convert C++ Public API Error handling to use couchbase::error. Related tickets: CXXCBC-492, CXXCBC-498, CXXCBC-499, CXXCBC-500, CXXCBC-508, CXXCBC-526 (#570, #557, #562, #560, #564, #567, #603, #597, #595, #594).

  • Update stability levels for API 3.6 level. Remove deprecated search_query (#602).

Fixes

  • CXXCBC-517: Add HTTP session retries when SDK fails to resolve hostnames (#589).

  • CXXCBC-445: Return request_canceled on IO error in HTTP session. (#568)

  • CXXCBC-511: Prevent use of HTTP session if idle timer has expired. (#565)

  • CXXCBC-523: Clean up dump_configuration config output (#577)

  • CXXCBC-531: Fix deadlock in cluster destructor (public API) (#608)

  • CXXCBC-534: Fix callbacks to avoid bad_function_call exception. (#606)

  • CXXCBC-518: Handle alternate addresses when locating preferred_node. (#574)

Build and Tests Fixes

  • Add cmake task to generate tarball (#596)

  • Do not refer to core headers in public API (#599)

  • Cleanup attempt_context implementation. (#586)

  • Do not use default parameters for virtual functions in transactions (#588)

  • Do not fetch config if no sessions in the bucket (#573)

  • Improve test stability (#563, #613)

1.0.0-dp.15

17 Apr 15:57
1.0.0-dp.15
1b506b0
Compare
Choose a tag to compare
1.0.0-dp.15 Pre-release
Pre-release

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.0-dp.15
Full Changelog: 1.0.0-dp.14...1.0.0-dp.15

Enhancements

Fixes

  • CXXCBC-487: Check if alternate addressing is used when bootstrapping. (#545)
  • CXXCBC-503: Ignore configuration if it contains an empty vBucketMap. (#556, #558)
  • CXXCBC-30: Inconsistent behaviour when using subdoc opcodes incorrectly (#559)
  • CXXCBC-492: Use retry strategy in collections_component's get_collection_id. (#552)
  • CXXCBC-494: Fix memory issue in range scan implementation. (#549)
  • Always attempt to extract common query code if error has not been set. (#561) Fixes quota/rate limit checks for older servers.

Build and Tests Fixes

  • CXXCBC-502: Apply /bigobj for SDK objects only. (#550) Avoid using global add_definitions() as it might leak to non-CXX languages (like ASM_NASM on Windows).
  • Add feature check for scoped analyze_document in tests (#555)
  • Update dependencies (#543)

1.0.0-dp.14

13 Mar 19:59
1.0.0-dp.14
933e87e
Compare
Choose a tag to compare
1.0.0-dp.14 Pre-release
Pre-release

API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.0-dp.14
Full Changelog: 1.0.0-dp.13...1.0.0-dp.14

Fixes

Build and Tests fixes

  • CXXCBC-458: Run transactions hooks asychronously. (#538)

  • Fix build with GCC 14. (#535)

  • Cleanup output of the transaction code sample. (#534)

  • Fix query error context fields. (#531)