SDK Release Notes

    Release notes, installation instructions, and download archive for the Couchbase Ruby Client.

    This page covers installation of the 3.x versions of the Couchbase Ruby SDK, and release notes for all 3.x versions.

    SDK Installation

    Ruby SDK supports MRI Ruby versions 4.0, 3.4, and 3.3. The source package is available through https://rubygems.org/gems/couchbase and can be installed with:

    gem install couchbase

    Note that --pre is necessary when the SDK in Beta/Preview phase — gem install --pre couchbase — otherwise the latest stable release will be installed.

    In addition to rubygems.org, we also maintain official gem repositories, where we publish not only source version of the package, but also precompiled binaries for Linux and MacOS.

    To use official repository, it have to be registered in the .gemrc file:

    gem sources --add https://packages.couchbase.com/clients/ruby/

    The repository could be also specified in Gemfile for bundler. And in this case the source would be applied only for Couchbase SDK library:

    gem "couchbase", "3.9.0", :source => "https://packages.couchbase.com/clients/ruby/"

    Or run in terminal:

    gem install couchbase --clear-sources --source https://packages.couchbase.com/clients/ruby/

    And finally, it is possible to download the package and install from the file. In the notes below, we specify tables with links to every release package along with precompiled binaries.

    wget https://packages.couchbase.com/clients/ruby/sdk-3.9.0/couchbase-3.9.0-x86_64-linux.gem
    gem install couchbase-3.9.0-x86_64-linux.gem

    The URL structure is:

    https://packages.couchbase.com/clients/ruby/sdk-3.9.0/couchbase-3.9.0-%{platform}.gem

    where "platform" placeholder can take values: arm64-darwin, x86_64-darwin, x86_64-linux, aarch64-linux, x86_64-linux-musl, aarch64-linux-musl, x64-mingw-ucrt, aarch64-mingw-ucrt. To see platform string the following command:

    ruby -rrbconfig -e 'puts RbConfig::CONFIG["platform"]'

    Ruby SDK 3.9 Releases

    We always recommend using the latest version of the SDK — it contains all of the latest security patches and support for new and upcoming features. All patch releases for each dot minor release should be API compatible, and safe to upgrade; any changes to expected behavior are noted in the release notes that follow.

    Version 3.9.0 (21 October 2026)

    This is the first GA release of the 3.9 Ruby SDK. The C++ core moves from 1.3.3 to 1.5.0.

    gem install couchbase -v 3.9.0
    Behaviour changes

    Review these before upgrading from 3.8.x:

    • TLS connections now verify the server certificate against the dialed hostname (CXXCBC-838). A certificate that does not match the hostname now fails the handshake.

    • Query, analytics, search, eventing, and management requests raise Error::InvalidArgument for an unrecognised HTTP 400 (CXXCBC-1049). SDK RFC 58 requires it.

    • retry_strategy: takes :best_effort or :fail_fast (RCBC-582). On the operations that honour it, any other value, such as a Proc, raises Error::InvalidArgument.

    • An Options::Base subclass defined by the application must yield in its own initialize (RCBC-583). Options::Base no longer yields for subclasses.

    • Bucket#ping reports the cluster-level HTTP services as well as key-value (CXXCBC-845, CXXCBC-1022).

    • The application telemetry latency histograms for HTTP services report _sum in milliseconds (CXXCBC-1002). Dashboards built on the old values need review.

    New Features

    • RCBC-558, CXXCBC-980: Read a Named Replica — Collection#get_replica reads one specific replica of a document, as defined by SDK-RFC 0053.

      • get_any_replica returns whichever copy answers first. get_replica lets the application choose the copy.

      • The copy is selected with GetReplicaStrategy.from_index(:first), or :second and :third. The active copy cannot be selected.

      • The result is a GetReplicaResult, and replica? is true.

      • Three new errors describe why the chosen copy cannot answer. The first two are raised without a network round trip.

        • Error::ReplicaIndexOutOfBounds: the bucket has fewer replicas than the index.

        • Error::ReplicaIndexCurrentlyUnavailable: the replica is configured but not placed on a node.

        • Error::DocumentNotFoundOnReplica: the replica does not hold the document. It subclasses Error::DocumentNotFound.

      • GetReplicaStrategy.from_index(:first, wrap: true) reads the next readable replica instead of failing. It still fails if the bucket has no replicas, or if no replica is readable.

      • The replica is chosen from the vBucket map, not from node health. A read of a replica whose node is down waits until its timeout. The API reference shows how to bound the wait and fall back to get_any_replica.

      • Over couchbase2:// the operation raises Error::FeatureNotAvailable.

    • RCBC-304, CXXCBC-845: wait_until_ready — Cluster#wait_until_ready and Bucket#wait_until_ready ping the services until they respond or the timeout elapses.

      • Options::WaitUntilReady selects the desired state and the service types.

      • :online waits for every endpoint of each requested service. :degraded waits for at least one.

      • For a bucket, :online also waits for the vBucket map. Every vBucket needs its active copy and each placeable replica on a node.

      • The wait raises Error::UnambiguousTimeout on timeout, and Error::ClusterClosed once Cluster#disconnect has run.

      • Thread#raise, Thread#kill and Timeout.timeout do not interrupt the wait.

      • Over couchbase2:// the wait raises Error::FeatureNotAvailable.

    • RCBC-554, CXXCBC-911: Hybrid Search Score Fusion — Options::Search#scoring controls how a hybrid search merges its FTS and vector results into one ranked list.

      • SearchScoring.reciprocal_rank_fusion merges the two lists by rank. It accepts rank_constant and window_size.

      • SearchScoring.relative_score_fusion merges the two lists by normalized score. It accepts window_size.

      • SearchScoring.none turns scoring off.

      • Both fusion strategies require Couchbase Server 8.1. On an older server the request raises Error::FeatureNotAvailable.

      • Over couchbase2:// only SearchScoring.none is supported. The fusion strategies raise Error::FeatureNotAvailable.

      • The two fusion strategies are uncommitted.

      • Setting both scoring and disable_scoring raises Error::InvalidArgument.

    • RCBC-582: Retry Strategy per Operation — Key-value operations honour retry_strategy:.

      • :fail_fast makes a request fail at once instead of retrying. A mutation on a locked document then raises Error::DocumentLocked immediately.

      • :best_effort and nil keep the default strategy of the Cluster object.

      • These operations honour the option:

        • get_multi, upsert_multi and remove_multi;

        • get_replica;

        • every other single-document operation except the replica reads below.

      • These operations ignore the option:

        • get_any_replica, get_all_replicas, lookup_in_any_replica and lookup_in_all_replicas.

        • Range scans.

        • Query, analytics, search and view requests.

      • Observe requests issued for persist_to: and replicate_to: still use the default strategy.

    • CXXCBC-978: Log Redaction — With log_redaction=true in the connection string, the core tags sensitive values in its log messages.

      • <ud> marks user data, <md> metadata and <sd> system data.

      • A tool such as cblogredaction then strips or hashes them before the logs are shared.

      • The setting is off by default. When it is off, log output is unchanged.

    • RCBC-575: ActiveSupport Cache Mutation Tracking — The mutation_tracking: store option selects which writes delete_matched and clear wait for.

      • :last, the default, waits for the last write, as before.

      • :all waits for the newest write to every vBucket the store wrote to.

      • Any object that responds to record and mutation_state can be given instead.

      • Writes by other store instances or processes are not covered.

    Improvements

    • Vector Search Committed — VectorSearch, VectorQuery and SearchRequest#vector_search are no longer marked uncommitted.

    • Platforms — Precompiled gems are published for more platforms:

      • Windows x64 (x64-mingw-ucrt).

      • Windows arm64 (aarch64-mingw-ucrt). This gem does not depend on grpc, so couchbase2:// is unavailable on it.

      • Linux arm64 with musl (aarch64-linux-musl).

      • The musl gems are built on Alpine 3.21.

    • RCBC-480: Windows Connections — The extension links Winsock ahead of the Ruby library on MinGW. Every connection previously failed with WSAENOTSOCK.

    Security Fixes

    • CXXCBC-1072, CXXCBC-1106: Management Request Encoding — Names and values passed by the application can no longer change the meaning of a management request.

      • User and group upsert bodies are now form-encoded. A password such as Pw123456&roles=admin previously added a roles field.

      • Names placed into REST paths are now escaped. A #, ? or / in a name could cut the path short or address a different entity.

    • CXXCBC-981: vBucket Map Bounds Check — Replica reads no longer index past the end of a vBucket map row. A row is short right after replicas are added to a bucket. Such a read could route a request to a node that does not hold the vBucket.

    • CXXCBC-837: MCBP Frame Bounds Check — A key-value response frame whose prefix length exceeds its body length is rejected. It previously drove the parser past the receive buffer.

    • CXXCBC-836: Analytics Identifier Quoting — Bucket, scope and collection names are quoted and escaped in the Analytics statements the SDK composes.

    Bug Fixes

    • RCBC-559, RCBC-567, RCBC-586, RCBC-304: Memory Leaks on Errors and Interrupts — A failing operation no longer leaks its request, its response or its reference to the core cluster.

      • 100,000 gets of a missing document grew RSS by about 23 MB.

      • Timeout.timeout, Thread#kill or a signal during an operation leaked its response. RSS growth per interrupted 4 MiB get drops from about 4 MiB to under 0.2 MiB.

      • These leaked the arguments already copied:

        • a tracer that raises;

        • an inspect that raises;

        • an out-of-range Integer;

        • a non-Symbol durability option.

      • A dynamic Symbol as a view namespace no longer crashes the process. It raises ArgumentError.

      • Errors reach Ruby with the same class, message and backtrace as before.

      • An interrupt that arrives just before an operation now takes effect when the operation completes. That can be as late as the operation timeout.

    • RCBC-568: Logger Hang — A failing Ruby logger callback no longer hangs the process.

      • The failure can be a non-StandardError exception, a Timeout or a Thread#kill.

      • The sink mutex stayed locked, and the next flush blocked while holding the GVL. The process then ignored SIGTERM.

      • Unwritten messages, including the one whose callback failed, are delivered by the next flush.

      • Couchbase.set_logger(nil) no longer raises ArgumentError.

    • RCBC-571, CXXCBC-913, CXXCBC-914, CXXCBC-1087: fork() Handling — The child is now notified as the child.

      • The child was notified as the parent, so it restarted the I/O it inherited. Both processes read the same sockets.

      • An asynchronous exception during the fork no longer leaves the parent’s Cluster objects stopped.

      • The child closes the sockets it inherited before it starts its own I/O.

      • The child reopens each Cluster object without waiting for its bootstrap (CXXCBC-1087). Requests issued meanwhile are held until the bootstrap completes. Each request is still bounded by its own timeout.

    • RCBC-564: Range Scan Use-After-Free — A scan result keeps the core cluster behind its Cluster object alive. Freeing the result after Cluster#disconnect could crash or hang the process. So could freeing both in one GC sweep.

    • RCBC-566: replica? Flag — GetReplicaResult#replica? now reports whether get_any_replica and get_all_replicas returned a replica. It previously returned nil over couchbase://.

    • RCBC-580: Raw Query and Analytics Parameters — Raw parameters reach the server as given.

      • A Symbol key passed to Options::Query#raw silently dropped that parameter and every raw parameter after it.

      • Options::Analytics#raw sent the entry as a statement binding $name. It is now sent as a request option.

      • A non-String key or value now raises ArgumentError. Such entries were previously dropped. This covers:

        • query and analytics parameters, raw and named;

        • search raw parameters.

    • RCBC-584: Raw View Parameters — Options::View#raw raised NoMethodError on every call, and stored values were never sent. Raw view parameters are now form-encoded and sent.

    • RCBC-583: Options Block — A block passed to an options constructor runs once, after the defaults are set. Options::Query.new { |o| o.raw("k", 1) } previously raised NoMethodError.

    • RCBC-574: ActiveSupport Cache After Multi-Key Writes — delete_matched and clear no longer raise NoMethodError after write_multi or delete_multi.

    • RCBC-569: Histogram Lock — A non-Float percentile no longer leaves HdrHistogramC locked. The next record_value previously aborted or blocked every Ruby thread. Integer percentiles are now accepted.

    • RCBC-573: Log Timestamps on macOS — Log times carry the correct sub-second part. On macOS it was a thousand times too small.

    • Windows Exit Hang — A process that loads the extension no longer hangs at exit on Windows.

    • **libstdc Symbol Interposition** -- Precompiled Linux gems no longer export the libstdc symbols they link statically. They interposed on the system libstdc and crashed other C extensions, such as mini_racer.

    • CXXCBC-984, CXXCBC-985, CXXCBC-986, CXXCBC-987, CXXCBC-1022, CXXCBC-1023, CXXCBC-1090, CXXCBC-1093: Request Completion — Several core paths no longer drop a key-value request without completing it.

      • A request waiting in a retry backoff when the Cluster object closes now completes with an error.

      • A key-value request’s timeout now includes the wait for its bucket to open.

      • A range scan of a missing collection fails at once with Error::CollectionNotFound.

      • ping no longer completes before every ping request has been sent.

    • CXXCBC-1039, CXXCBC-1046, CXXCBC-1048: HTTP Session Lifecycle — HTTP session shutdown is serialised and runs once. Closing a busy session no longer causes a use-after-free.

    • CXXCBC-1057: Client Certificate Rotation — A certificate set with Cluster#update_authenticator is used by the next HTTP request. Pooled HTTP connections previously kept the old certificate until their idle timeout.

    • CXXCBC-882, CXXCBC-1059: Query Error Mapping — 

      • Query error 2120 (E_ADMIN_AUTH) raises Error::AuthenticationFailure.

      • Dropping a query index that does not exist raises Error::IndexNotFound, whatever HTTP status the server returns.

    • CXXCBC-823, CXXCBC-839, CXXCBC-841, CXXCBC-876: Connection Management — Fixes from core 1.4.0:

      • A cluster-level configuration no longer displaces a bucket’s configuration. This caused stale routing and Not-My-VBucket loops during failover and rebalance.

      • Dead idle pooled HTTP connections are detected and closed.

      • Bucket create and update work against Couchbase Server 8.1.

    • CXXCBC-785, CXXCBC-787, CXXCBC-788, CXXCBC-797: Key-Value Correctness — A projected get with more than 16 paths no longer fails when a path is missing. lookup_in_all_replicas reports its paths and total failure correctly.

    Deprecations

    • RCBC-554: Options::Search#disable_scoring — Replaced by scoring: SearchScoring.none, which sends the same request.

    Build and Test Infrastructure

    • The test suite runs on Windows x64 and arm64 against CAVES.

    • rake compile uses the dependencies and CA bundle vendored in ext/cache.

    • The gem no longer ships a copy of the core’s BoringSSL patch for MinGW.

    Ruby SDK 3.8 Releases

    Version 3.8.2 (2 September 2026)

    gem install couchbase -v 3.8.2

    Fixes and Enhancements

    Version 3.8.1 (2 July 2026)

    gem install couchbase -v 3.8.1

    Fixes and Enhancements

    • RCBC-542: Forward the supplied CAS value to the C++ core in Append and Prepend operations, so that compare-and-swap is now honored for these mutations (#225).

    • RCBC-550: Access the C++ core log level through the core API instead of spdlog’s default logger (#229).

    • RCBC-540, RCBC-541: Updated the Protostellar protocol definitions to the latest version (#226).

    • Updated core to 1.3.2 (#232, #224).

    Build and Test Infrastructure Improvements

    • RCBC-535: Upgraded the test suite to Minitest 6 (#228).

    • RCBC-543: Added a consistency helper for update_collection tests (#227).

    • RCBC-541: Added GitHub Actions testing against Couchbase Cloud Native Gateway (CNG) (#226).

    • Fixed rubocop Lint/SafeNavigationWithEmpty offenses (#230).

    • Updated GitHub Actions versions (#231).

    Version 3.8.0 (31 March 2026)

    Version 3.8.0 is a minor release of the third generation Ruby SDK, bringing a number of improvements. Most notably the 3.8.0 release adds observability support (with the ability to integrate with OpenTelemetry, via the couchbase-opentelemetry extension), and adds support for Ruby 4.0 —  see Ruby Version Compatibility for details of supported Ruby versions. Support is also added for JWT authentication and for credential rotation without downtime.

    Ruby SDK

    Installing the SDK
    Command line installation
    $ gem install couchbase -v 3.8.0
    Gemfile
    # rubygems.org version
    gem "couchbase", "3.8.0"
    
    # using official repository
    gem "couchbase", "3.8.0", :source => "https://packages.couchbase.com/clients/ruby"

    OpenTelemetry Extension

    Installing the OpenTelemetry Extension
    Command line installation
    $ gem install couchbase-opentelemetry -v 3.8.0
    Gemfile
    # rubygems.org version
    gem "couchbase-opentelemetry", "3.8.0"
    
    # using official repository
    gem "couchbase-opentelemetry", "3.8.0", :source => "https://packages.couchbase.com/clients/ruby"

    Fixes and Enhancements

    • RCBC-524, RCBC-525, RCBC-526: OpenTelemetry integration (#216, #195, #197).

      Full support for distributed tracing and metrics using the OpenTelemetry API. Operations now create spans and record latency and throughput metrics that can be exported to backends like Jaeger or Prometheus.

    • RCBC-522: Support for JWT authentication (#218).

      Added Couchbase::Management::Options::User::JwtAuthenticator to enable authentication using JSON Web Tokens.

    • RCBC-521: The new Couchbase::Cluster#update_authenticator method allows rotating credentials (passwords or certificates) on an active cluster connection without requiring a restart (#191).

    • RCBC-503: New configuration settings in Couchbase::Options::Cluster to control the SDK’s internal telemetry collection, including endpoint overrides and connection backoff (#190).

    • RCBC-528: Migrated all Key-Value operations to use the high-performance C++ backend, ensuring feature parity and consistent behavior across Couchbase SDKs (#196).

    • RCBC-529: Standardized management operation options: Added parent span for search, user, and view management options, and moved to the Management::Options module, and added support for distributed tracing across administrative tasks (#192).

    • RCBC-527: Enhanced observability by surfacing internal C++ core timing spans (e.g., encoding, dispatch, decoding) within the Ruby span hierarchy (#210).

    • RCBC-536: Added cluster name and cluster uuid span/metric attributes (#202). Automatically attaches db.couchbase.cluster_name and db.couchbase.cluster_uuid to all telemetry signals.

    • RCBC-530: Deprecated Support for MapReduce Views (#194). MapReduce View APIs are now marked as deprecated in alignment with the Couchbase Server deprecation schedule.

    • RCBC-525: Fixed names of lookup_in_all_replicas and lookup_in_any_replica spans (#220).

    • RCBC-534: Correctly set tracer to external tracer if one is provided (#199).

    • Added support for Ruby 4.0 (#198).

    • Added inventory_with_opentelemetry example for the couchbase-opentelemetry gem (#222).

    • Updated core to 1.3.1 (#221, #219).

    Ruby SDK 3.7 Releases

    Version 3.7.0 (29 September 2025)

    gem install couchbase -v 3.7.0

    New Features

    • RCBC-517: Added support vector search prefilter (#180).

    • RCBC-518: Added way to disable enterprise analytics check programmatically (#186).

    • Updated core to 1.2.0 (#188, #181).

    Build and Test Infrastructure Improvements

    • Fixed rubocop error & warnings (#185, #187).

    • Fix simplecov error in test helper (#184).

    • Github Actions:

      • Pinned clang tools in linters workflow (#183);

      • Updated Windows runners (#182).

    Ruby SDK 3.6 Releases

    Version 3.6.0 (2 June 2025)

    gem install couchbase -v 3.6.0

    New Features

    • RCBC-516: Include storage_backend in get_bucket/get_all_buckets results (#173).

    • RCBC-510: Added BucketSettings#num_vbuckets (#174).

    Fixes

    • RCBC-511: Updated core to pick up improved user lock/unlock error messages & logs (#177).

    • Updated core to 1.1.0. Release notes: C++ SDK 1.1.0.

    Ruby SDK 3.5 Releases

    Version 3.5.7 (31 March 2025)

    gem install couchbase -v 3.5.7

    Fixes

    • RCBC-514: Added support for Ruby 3.4 and Linux/arm64 (#170).

    • RCBC-515: Enforce CMAKE_POLICY_VERSION_MINIMUM to be 3.5 for snappy and cmake 4.x (#172).

    Version 3.5.6 (18 March 2025)

    gem install couchbase -v 3.5.6

    Platform

    File

    Checksums

    couchbase-3.5.6.sha256sum

    Source Archive

    couchbase-3.5.6.gem

    Linux x86_64

    couchbase-3.5.6-x86_64-linux.gem

    Linux x86_64 (musl)

    couchbase-3.5.6-x86_64-linux-musl.gem

    macOS x86_64

    couchbase-3.5.6-x86_64-darwin.gem

    macOS arm64

    couchbase-3.5.6-arm64-darwin.gem

    Fixes

    Version 3.5.5 (28 January 2025)

    gem install couchbase -v 3.5.5

    Fixes

    • RCBC-487: New APIs added to allow getting KV documents from a preferred server group. This feature allows the implementation of 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 (#163).

    • RCBC-504: Updated core and version generation (#162).

    • Updated core to 1.0.5. Release notes: C++ SDK 1.0.5.

    Version 3.5.4 (22 October 2024)

    gem install couchbase -v 3.5.4

    Fixes

    Version 3.5.3 (27 August 2024)

    gem install couchbase -v 3.5.3

    Fixes

    Version 3.5.2 (25 July 2024)

    gem install couchbase -v 3.5.2

    Improvements

    • RCBC-489: Support added for base64 encoded vector types (#146).

    Fixes

    Version 3.5.1 (23 April 2024)

    gem install couchbase -v 3.5.1

    Platform

    File

    Checksums

    couchbase-3.5.1.sha256sum

    Source Archive

    couchbase-3.5.1.gem

    Linux x86_64

    couchbase-3.5.1-x86_64-linux.gem

    Linux x86_64 (musl)

    couchbase-3.5.1-x86_64-linux-musl.gem

    macOS 11 x84_64

    couchbase-3.5.1-x86_64-darwin.gem

    macOS 13 arm64

    couchbase-3.5.1-arm64-darwin.gem

    Improvements

    • RCBC-482: Only expand MutateIn macros when the relevant symbols are used as values (#141).

    Bug Fixes

    • RCBC-476: FeatureNotAvailable message for couhbase2:// ping and diagnostics (#139).

    Underlying C++ SDK Core Changes

    Enhancements
    Fixes
    • CXXCBC-487: Added logic during bootstrap to check if alternate addressing is being used (#545).

    • CXXCBC-503: Added logic to ignore configuration if it contains an empty vBucket map (#556, #558).

    • CXXCBC-30: Fixed inconsistent behaviour when using subdoc opcodes incorrectly (#559).

    • CXXCBC-492: Updated collection_component get_collection_id to use retry strategy (#552).

    • CXXCBC-494: Fixed memory issue in range scan implementation (#549).

    • Always attempt to extract common query code if error has not been set (#561). This 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-C++ languages (like ASM_NASM on Windows).

    Version 3.5.0 (17 March 2024)

    gem install couchbase -v 3.5.0

    Known Issues

    • CXXCBC-447: This version of the SDK will not be able to connect to a cluster utilizing alternate addressing. The recommendation is to wait to upgrade to a version of the Ruby SDK that contains C++ SDK 1.0.0-dp.15 (or later).

    Improvements

    • RCBC-469: Support added for Scoped Search Indexes (#132).

    • RCBC-467: Added support for Vector search (#131).

    • RCBC-468: Support added for maxTTL value of -1 for collection 'no expiry' (#130).

    • RCBC-410, RCBC-458: Added support for the couchbase2 protocol (#126, #127).

    • RCBC-472: Ping now returns result for management service when specified in options (#134).

    • RCBC-463: Adedd DocumentNotLocked error to corresponds with the C++ error code couchbase::errc::key_value::document_not_locked (#128).

    Bug Fixes

    • Ensure that truncating keys in CouchbaseStore preserves the validity of their encoding (#125).

    • RCBC-461: extract_expiry_time is now called in the setter instead of the constructor, so that the expiry is sent to the backend in the correct format, and there should no longer be an ArgumentError (#124).

    Build and Test Improvements

    • RCBC-464: Improved stability of management tests (#133).

    • Migrated most of the build and test tasks to GitHub Actions.

    Underlying C++ SDK Core Changes

    Changes in Couchbase C++ SDK 1.0.0-dp.14
    Fixes
    • CXXCBC-482: Updated range scan orchestrator to use best effort retry strategy by default (#542).

    • CXXCBC-481: Fixed potential crash when parsing search result hits (#541).

    • CXXCBC-461: Updated ping operation to not send to nodes that have not completed bootstrap (#540).

    • CXXCBC-462: Fixed hanging when specifying a custom metadata collection via the public API & expose errors (#532).

    • CXXCBC-480: Fixed capabilities check for replica LookupIn operations (#539).

    • CXXCBC-479: Fixed capabilities check for replica LookupIn operations (#537).

    • CXXCBC-336: Updated DNS config to not fallback to 8.8.8.8 if SDK cannot obtain system DNS server (#533).

    Changes in Couchbase C++ SDK 1.0.0-dp.13

    New features and enhancements

    • CXXCBC-456: Updated configuration logic when 0x0d (EConfigOnly) status code is received to have the SDK request new configuration and send current operation to retry orchestrator (#523).

    • CXXCBC-191: Index Key Encoding (#519) — in line with the rfc, the fields paramaeter is now remamed to keys in the Public API’s create_index(), and each index key provided to create_index() is encoded by surrounding them with backticks.

    Fixes
    • CXXCBC-345: Added range scan improvements and resolved concurrency issues (#525).

    • CXXCBC-284: Updated config polling to not use session that is not bootstrapped (#528).

    • CXXCBC-447: Updated bootstrap logic to use addresses from the config to bootstrap bucket (#516).

    • CXXCBC-450: Updated bootstrap logic to reset bootstrap handler before re-bootstrap (#524).

      • We do not want any actions from the old bootstrap handler once the session decided to re-bootstrap. For example, bucket could not be selected, but we might still get configuration responses before socket reset.

    • CXXCBC-452: Updated capabilities and fail fast when selected feature is not available (#522, #513).

    • CXXCBC-431: Added check for history retention bucket capability in collection create/update (#502, #505).

    • CXXCBC-421: Updated query operation to return feature_not_available if query preserve expiry is specified but is not supported on the server(#510).

    Changes in Couchbase C++ SDK 1.0.0-dp.12
    New features and enhancements
    • CXXCBC-401: Added ping & diagnostics to public API (#498, #503).

    • CXXCBC-346: Support added for maxTTL value of -1 for collection 'no expiry' (#500).

    • CXXCBC-442: Transcoder support - which was previously limited in the SDK to JSON and RawBinary transcoders — has now been extended to raw_json and raw_string transcoders (#514).

    • CXXCBC-440: Support added for Scoped Search Indexes (#512, #513).

    Fixes
    • CXXCBC-284: Updated config polling to not use session that is not bootstrapped, to reduce network traffic when polling for cluster configuration (#504, #528).

    • CXXCBC-422: Added insufficient credentials error code to common query error code conversion (#511).

    • CXXCBC-421: Updated query operation to return feature_not_available if query preserve expiry is specified but is not supported on the server(#510).

    • CXXCBC-426: Under testing, a get with very large projection was returning fields outside of the projection. This has been fixed, with the projections now set correctly, and the SDK should fall back to a full-doc fetch and return a valid projected result (#499).

    Changes in Couchbase C++ SDK 1.0.0-dp.11
    Fixes
    • CXXCBC-404: Fixed unlock operations to expose KV_LOCKED status as cas_mismatch (#479).

    • CXXCBC-403: Updated not_my_vbucket KV response to allow retries (#480).

    • CXXCBC-368: Added support for subscribing to clustermap notifications to speed up failover (#490).

    • CXXCBC-419: Updated MCBP protocol parser to start with clean state. Fixes protocol parsing issues when bootstrap sequence is being retried (#496).

    • CXXCBC-409: Added handling for index does not exist query error (#492).

    • CXXCBC-412: Added support for the document_not_locked (0x0e) KV status, mapping it to the errc::key_value::document_not_locked error code (#491).

    Changes in Couchbase C++ SDK 1.0.0-dp.10
    Fixes
    • CXXCBC-383: The subdoc_doc_too_deep (0xc4) KV status now returns a`path_too_deep` error code (#455).

    • CXXCBC-382: Fixed raw_binary_transcoder so that `get`s on binary data are now possible.. (#459).

    • CXXCBC-387: Optimising tags for noop_tracer and cache formatted mbcp_session endpoints (#461, #462, #464)..

    • Added more information to diagnose timeouts on NMV responses (#475).

    Platform

    File

    Checksums

    couchbase-3.5.0.sha256sum

    Source Archive

    couchbase-3.5.0.gem

    Linux x86_64

    couchbase-3.5.0-x86_64-linux.gem

    Linux x86_64 (musl)

    couchbase-3.5.0-x86_64-linux-musl.gem

    macOS 11 x84_64

    couchbase-3.5.0-x86_64-darwin-20.gem

    macOS 13 arm64

    couchbase-3.5.0-arm64-darwin-22.gem

    Ruby SDK 3.4 Releases

    Version 3.4.5 (10 October 2023)

    gem install couchbase -v 3.4.5

    Improvements

    • RCBC-450: Subdoc exists was returning nil for content. It should now return the value of the content: true if result is success, or false if path-not-found (#120).

    • RCBC-453: Added support history retention in collection and bucket management (#119).

    Underlying C++ SDK Core Changes

    • CXXCBC-376: Changed what 'create' and 'update' bucket operations send to the server. Unrequired BucketSettings fields are now set to optional, and are not sent unless the settings are explicitly specified. (#451).

    • CXXCBC-374: The SDK should now return a 'bucket_exists' error when the bucket already exists during a 'create' operation. (#449).

    • CXXCBC-359: Reduced the default timeout for idle HTTP connections to 1 second. The previous default (4.5 seconds) was too close to the 5-second server-side timeout, and could lead to spurious request failures. (#448).

    • CXXCBC-367, CXXCBC-370: Added history retention settings to buckets/collection management (#446).

    • CXXCBC-119: Return booleans for subdocument 'exists' operation, instead of error code (#444, #452).

    • Detect collection_not_found error in update_collection response (#450).

    Version 3.4.4 (21 August 2023)

    gem install couchbase -v 3.4.4

    Improvements

    Underlying C++ SDK Core Changes

    • CXXCBC-333: Fixed parsing 'resolv.conf' on Linux (#416).

      • The library might not ignore trailing characters when reading nameserver address from the file.

    • CXXCBC-335: Now logging connection options for visibility (#417).

    • CXXCBC-343: Continue bootsrap if DNS-SRV resolution fails (#422).

    • CXXCBC-242: SDK Support for Native KV Range Scans (#419, #423, #424, #426, #428, #431, #432, #433, #434).

    • CXXCBC-339: Disable older TLS protocols (#418).

    • CXXCBC-346: Protocol communication can now be logged in a separate file (#425).

      Couchbase::Backend.enable_protocol_logger_to_save_network_traffic_to_file("/tmp/cb.log")
    • CXXCBC-350: Collection ID was resolved on a per-request basis — which could result in situations where results from a single scan can originate from more than one collection. This could happen if a collection was dropped and then immediately recreated with the same name. We now resolve collection ID before performing any scan operations (#433).

    Version 3.4.3 (17 May 2023)

    gem install couchbase -v 3.4.3

    Improvements

    • RCBC-420: Implemented support for RawJsonTranscoder, RawBinaryTranscoder, and RawStringTranscoder, and checking flags when decoding document content (#93).

    • RCBC-427: Add missing query index management options — scope_name, collection_name, and index_name for #create_primary method. Replaced ArgumentError with InvalidArgument error when scope_name and collection_name are used in the CollectionQueryIndexManager (#92).

    • RCBC-436: To support LDAP authentication, always use PLAIN SASL mechanism with TLS connections (#103, CXXCBC-296).

    • Fix the durability level always being set to none in the C++ core (#99).

    • Added constructor for SearchRowLocation (#95).

    • Changed attr to attr_reader (#104).

    Underlying C++ SDK Core Changes

    • CXXCBC-324: Port and network name now checked on session restart, improving performance during rebalance (#401).

    • CXXCBC-323: bootstrap_timeout and resolve_timeout can now be used in the connection string (#400).

    • CXXCBC-327: Bundled Mozilla certificates with the library (#405, #408). Source: https://curl.se/docs/caextract.html. Use the disable_mozilla_ca_certificates connection string option to disable the bundled certificates. Use the following script to inspect the certificates' metadata:

      Couchbase::BUILD_INFO[:cxx_client].select{|k, _| k =~ /mozilla/}
      # =>
      # {:mozilla_ca_bundle_date=>"Tue Jan 10 04:12:06 2023 GMT",
      #  :mozilla_ca_bundle_embedded=>true,
      #  :mozilla_ca_bundle_sha256=>"fb1ecd641d0a02c01bc9036d513cb658bbda62a75e246bedbc01764560a639f0",
      #  :mozilla_ca_bundle_size=>137}
    • Introduced connection string option dump_configuration for debugging (#398). It logs cluster configuration at trace level.

    Version 3.4.2 (12 April 2023)

    gem install couchbase -v 3.4.2

    Improvements

    • RCBC-419: Accept Couchbase::Configuration object on Couchbase::Cluster.connect (#85).

    • RCBC-418: Add durability to append and prepend options (#88).

    • RCBC-422: Cleanup search options (#89).

    Underlying C++ SDK Core Changes

    • CXXCBC-31: Allow the use of schemaless connection strings (e.g. "cb1.example.com,cb2.example.com") (#394).

    • CXXCBC-318: Always try TCP if UDP fails in DNS-SRV resolver (#390).

    Version 3.4.1 (20 March 2023)

    gem install couchbase -v 3.4.1

    Improvements

    • RCBC-396: Query index management is now available on Collection class as Collection#query_indexes. scope_name and collection_name in QueryIndexManager are now deprected (#75).

    Underlying C++ SDK Core Changes

    • Improved build with OpenSSL on CentOS 7 (#382).

    • CXXCBC-144: Search query on collections no longer requires you to pass in the scope name — it is inferred from the index (#379).

    • CXXCBC-145: Search query request, raw option added (#380).

    Version 3.4.0 (19 February 2023)

    gem install couchbase -v 3.4.0

    Improvements

    • RCBC-378: Implement change password for Management::User class. (#65)

    • RCBC-388: Add Configuration Profiles. At the moment one profile is defined "wan_development", and it could be applied using Options::Cluster#apply_profile. (#55)

    • RCBC-263: Implement legacy durability. See options :persist_to and :replicate_to of mutations. (#49)

    • RCBC-387: Implement replica reads with Collection#get_any_replica and Couchbase#get_all_replicas (#48)

    • RCBC-375: Implement log forwarding. See documentation of method Couchbase.set_logger and classes Couchbase::Utils::GenericLoggerAdapter, Couchbase::Utils::GenericLoggerAdapter (#45)

    • RCBC-371: Return id for *_multi results. (#40)

    • RCBC-393: Fix type conversion for query metrics. (#62)

    • RCBC-398: Add ClusterRegistry to allow custom connection string handlers. (#68)

    • RCBC-366: Allow to override default timeouts through Options::Cluster (#37)

    • RCBC-399: Add default options objects as class constants. (#69)

    Underlying C++ SDK Core

    Notable Changes in C++ SDK 1.0.0-dp.4

    • CXXCBC-275: Update implementation query context fields passed to the server. In future versions of the server versions it will become mandatory to specify context of the statement (bucket, scope and collection). This change ensures that both future and current server releases supported transparently.

    • CXXCBC-296: Force PLAIN SASL auth if TLS enabled. Using SCRAM SASL mechanisms over TLS protocol is unnecesary complication, that slows down initial connection bootstrap and potentially limits server ability to improve security and evolve credentials management.

    • CXXCBC-295: The get with projections opration should not fail if one of the the paths is missing in the document, because the semantics is "get the partial document" and not "get individual fields" like in lookup_in operation.

    • CXXCBC-294: In the Public API, if get operation requested to return expiry time, zero expiry should not be interpreted as absolute expiry timestamp (zero seconds from UNIX epoch), but rather as absense of the expiry.

    • CXXCBC-291: Allow to disable mutation tokens for Key/Value mutations (use enable_mutation_tokens in connection string).

    • Resource management and performance improvements:

      • Fix tracer and meter ref-counting (#370)

      • Replace minstd_rand with mt19937_64, as it gives less collisions (#356)

      • CXXCBC-285: Write to sockets from IO threads, to eliminate potential race conditions. (#348)

      • Eliminate looping transform in mcbp_parser::next (#347)

      • CXXCBC-205: Use thread-local UUID generator (#340)

      • CXXCBC-293: Performance improvements:

        • Speed up UUID serialization to string (#346)

        • Don’t allow to copy mcbp_message objects (#345)

        • Avoid extra allocation and initialization (#344)

    • Build system fixes:

      • Fix build with gcc-13 (#372)

      • Fix gcc 12 issue (#367)

    • Enhancements:

      • Include bucketless KV service when ping is requested. (#339)

      • Include OS name in SDK identifier (#349)

    Notable changes in C++ SDK 1.0.0-dp.3

    • CXXCBC-276: Use interval from the options for config poll, which previous was hard-coded to 2.5 seconds. (#336)

    Notable changes in C++ SDK 1.0.0-dp.2

    • CXXCBC-242: Drain waiting commands list on MCBP session close (#321)

    • CXXCBC-271: Fix get_all_replicas behaviour: do not propagate error if result set is not empty, while the last response has failed. (#322)

    Notable changes in C++ SDK 1.0.0-dp.1

    • CXXCBC-142: Update SRV resolution for Windows (#303)

    • CXXCBC-172: Refresh DNS SRV when cluster uncontactable (#275, #290)

    • CXXCBC-234: Error message for bucket hibernation and update error message for authentication_failure. (#280, #285)

    • CXXCBC-235: Load system CAs when the trust certificate is not provided and do not fail if trust certificate is not specified (#283, #281)

    • CXXCBC-245: Fix encoding of durability frame (#277)

    • CXXCBC-246: Convert not_stored code to document_exists (#278)

    • CXXCBC-251: Fix snappy decompression for get_replica (#296)

    • CXXCBC-253: query_options not setting scope_qualifier (#300)

    • SDKQE-2761: Fix failures in serverless mode (#274)

    • Don’t log expected warnings in DNS resolver (#294)

    Resource management and performance fixes
    • CXXCBC-225: Don’t throw exceptions when socket options cannot be set (#270)

    Build system fixes
    • Move away from reinterpret_pointer_cast<> for MacOS build issue (#288)

    • Improve OpenSSL detection on Windows (#272)

    Notable changes in C++ SDK 1.0.0-beta.3

    Bug fixes
    • CXXCBC-134: Close http_session before conecting to next endpoint (#213)

    • CXXCBC-179: fix parsing responses with chunked meta trailer (#191)

    • CXXCBC-170: add extra check for missing CA for TLS connections (#197)

    • CXXCBC-182: add extra check for keywords in query index fields (#196)

    • CXXCBC-173: complete streaming lexer even if pointer didn’t match (#195)

    • CXXCBC-212: reprepare and retry query on 4040, 4050 and 4070 (#257)

    • CXXCBC-174: reduce scope of the http request lock (#259)

    • CXXCBC-176: ignore 'is_primary' for named primary indexes when dropping (#202)

    • Return subdocument error context from future-based subdoc methods (#258)

    Ruby SDK 3.3 Releases

    Version 3.3.0 (5 May 2022)

    This is the first GA release of the 3.3 series.

    gem install couchbase -v 3.3.0

    Improvements:

    • RCBC-338: Added new options for the search API. You can now add the operator and include_locations properties to all search queries.

    • RCBC-358, RCBC-346: Added new options for the bucket API. The SDK now allows you to configure the custom conflict resolution storage backend for new buckets.

    • RCBC-345: We now support preserving expiry for the query API.

    • RCBC-343: SSL peer is now verified by default.

    • Added support for Ruby 3.1.

    • Dropped support for Ruby 2.5 and 2.6.

    Fixes:

    • RCBC-358: The SDK now initializes search locations only if they are returned by the server.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.3.0.sha256sum

    Source Archive

    couchbase-3.3.0.gem

    Linux x86_64

    3.1.0

    couchbase-3.3.0-x86_64-linux-3.1.0.gem

    Linux x86_64

    3.0.0

    couchbase-3.3.0-x86_64-linux-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.3.0-x86_64-linux-2.7.0.gem

    macOS 10.15 x84_64

    3.1.0

    couchbase-3.3.0-x86_64-darwin-19-3.1.0.gem

    macOS 10.15 x84_64

    3.0.0

    couchbase-3.3.0-x86_64-darwin-19-3.0.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.3.0-x86_64-darwin-19-2.7.0.gem

    macOS 11 x84_64

    3.1.0

    couchbase-3.3.0-x86_64-darwin-20-3.1.0.gem

    macOS 11 x84_64

    3.0.0

    couchbase-3.3.0-x86_64-darwin-20-3.0.0.gem

    macOS 11 x84_64

    2.7.0

    couchbase-3.3.0-x86_64-darwin-20-2.7.0.gem

    Ruby SDK 3.2 Releases

    Version 3.2.0 (4 August 2021)

    This is the first GA release of the 3.2 series.

    gem install couchbase -v 3.2.0
    • RCBC-301: Implemented metrics. This feature is enabled by default; it can be disabled in the connection string with enable_metrics=false, or programmatically:

      options = Cluster::ClusterOptions.new
      options.enable_metrics = false

      Extra options:

      options = Cluster::ClusterOptions.new
      options.metrics_emit_interval = 60_000 # in milliseconds, default 10 minutes
    • RCBC-234: Implemented tracing. This feature is enabled by default; it can be disabled in the connection string with enable_tracing=false, or programmatically:

      options = Cluster::ClusterOptions.new
      options.enable_tracing = false

      Extra options:

      options = Cluster::ClusterOptions.new
      options.orphaned_emit_interval = 600_000 # in milliseconds
      options.orphaned_sample_size = 64
      
      options.threshold_emit_interval = 600_00 # in milliseconds
      options.threshold_sample_size = 64
      options.key_value_threshold = 500 # in milliseconds
      options.query_threshold = 1_000 # in milliseconds
      options.view_threshold = 1_000 # in milliseconds
      options.search_threshold = 1_000 # in milliseconds
      options.analytics_threshold = 1_000 # in milliseconds
      options.management_threshold = 1_000 # in milliseconds
    • RCBC-318: Parse and use revEpoch field in configuration for improved bucket configuration handling.

    • RCBC-324: Query error code 13014 is now mapped to an AuthenticationFailure exception.

    • RCBC-227: Remote links for analytics can now be managed from the SDK, enabling connection to an external dataset such as an AWS S3 bucket.

    • RCBC-283: Added Collections support for Search queries.

    • RCBC-311: Fixed scope qualifer encoding for analtyics to work with latest decoding.

    • Dropped support of Ruby 2.5.

    • Many smaller fixes and improvements.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.2.0.sha256sum

    Source Archive

    couchbase-3.2.0.gem

    Linux x86_64

    3.0.0

    couchbase-3.2.0-x86_64-linux-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.2.0-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.2.0-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.2.0-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    3.0.0

    couchbase-3.2.0-x86_64-darwin-19-3.0.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.2.0-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.2.0-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.2.0-x86_64-darwin-19-2.5.0.gem

    macOS 11 x84_64

    3.0.0

    couchbase-3.2.0-x86_64-darwin-20-3.0.0.gem

    macOS 11 x84_64

    2.7.0

    couchbase-3.2.0-x86_64-darwin-20-2.7.0.gem

    macOS 11 x84_64

    2.6.0

    couchbase-3.2.0-x86_64-darwin-20-2.6.0.gem

    macOS 11 x84_64

    2.5.0

    couchbase-3.2.0-x86_64-darwin-20-2.5.0.gem

    macOS 11 Universal

    2.6.0

    couchbase-3.2.0-universal-darwin-20.gem

    Ruby SDK 3.1 Releases

    Version 3.1.1 (8 April 2021)

    This is the second GA release of 3.1 series.

    gem install couchbase -v 3.1.1
    • RCBC-309: Allow subdocument remove operation with empty path.

    • RCBC-316: Fix exceptions for collections manager.

    • RCBC-315: Raise CasMismatch exception only when query returns code 12009 with "CAS mismatch" in message.

    • RCBC-298: Support preserving expiration for mutations. Collection#replace, Collection#upsert, and Collection#mutate_in methods now accept new boolean option preserve_expiry which determines whether the server will update expiration for existing documents (false by default).

      In the following example, the server will not reset expiration if the document already exists, and only use 100 seconds if the document has to be created.

      collection.upsert(doc_id, {answer: 43},
          Options::Upsert(expiry: 100, preserve_expiry: true))
    • RCBC-317: Allow to disable snappy compression with enable_compression=false in connection string.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.1.1.sha256sum

    Source Archive

    couchbase-3.1.1.gem

    Linux x86_64

    3.0.0

    couchbase-3.1.1-x86_64-linux-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.1.1-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.1.1-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.1.1-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    3.0.0

    couchbase-3.1.1-x86_64-darwin-19-3.0.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.1.1-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.1.1-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.1.1-x86_64-darwin-19-2.5.0.gem

    macOS 11 x84_64

    3.0.0

    couchbase-3.1.1-x86_64-darwin-20-3.0.0.gem

    macOS 11 x84_64

    2.7.0

    couchbase-3.1.1-x86_64-darwin-20-2.7.0.gem

    macOS 11 x84_64

    2.6.0

    couchbase-3.1.1-x86_64-darwin-20-2.6.0.gem

    macOS 11 x84_64

    2.5.0

    couchbase-3.1.1-x86_64-darwin-20-2.5.0.gem

    macOS 11 Universal

    2.6.0

    couchbase-3.1.1-x86_64-darwin-20.gem

    Version 3.1.0 (24 March 2021)

    This is the first GA release of 3.1 series.

    gem install couchbase -v 3.1.0
    • RCBC-314: Fixed class resolution for Analytics at scope level.

    • RCBC-276: Marked create_as_deleted of subdocument API as private.

    • RCBC-287: Updated URLs of endpoints for Collections management API.

    • RCBC-303: Deprecated CollectionManager#get_scope; instead the application should use CollectionManager#get_scopes and iterate/filter the results.

    • RCBC-313: Send collection name as value on network level for 0xbb (GET_COLLECTION_ID) command.

    • RCBC-302: Allow to disable configuration push from server (using enable_clustermap_notification=false in the connection string).

    • RCBC-307: Allow to disable unordered execution of commands (using enable_unordered_execution=false in the connection string).

    • The library does not keep GVL lock durng IO anymore. It releases lock when scheduling a command, and acquires it back once the command is completed. This change allows runtime to use fibers or threads, and do something useful while the operation is in progress.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.1.0.sha256sum

    Source Archive

    couchbase-3.1.0.gem

    Linux x86_64

    3.0.0

    couchbase-3.1.0-x86_64-linux-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.1.0-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.1.0-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.1.0-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    3.0.0

    couchbase-3.1.0-x86_64-darwin-19-3.0.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.1.0-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.1.0-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.1.0-x86_64-darwin-19-2.5.0.gem

    macOS 11 x84_64

    3.0.0

    couchbase-3.1.0-x86_64-darwin-20-3.0.0.gem

    macOS 11 x84_64

    2.7.0

    couchbase-3.1.0-x86_64-darwin-20-2.7.0.gem

    macOS 11 x84_64

    2.6.0

    couchbase-3.1.0-x86_64-darwin-20-2.6.0.gem

    macOS 11 x84_64

    2.5.0

    couchbase-3.1.0-x86_64-darwin-20-2.5.0.gem

    Ruby SDK 3.0 Releases

    Version 3.0.3 (3 February 2021)

    gem install couchbase -v 3.0.3

    This is the fourth GA release of 3.0 series.

    • RCBC-226: Add minimal durability setting in bucket manager.

    • RCBC-238: Refactored expiration (TTL) options:

      • It accepts Time instance in addition to Duration (#in_seconds);

      • When Integer is passed, it implicitly converts to epoch time to resolve disambiguation.

    • RCBC-291: Implementation of ActiveSupport::Cache::Store interface. To enable it, put the following lines into application configuration section:

    config.cache_store = :couchbase_store, {
      connection_string: "couchbase://localhost",
      username: "app_cache_user",
      password: "s3cret",
      bucket: "app_cache"
    }
    • RCBC-292: Swap bytes in CAS for compatiblity. Now the value of CAS matches the representation in other services (e.g. Query).

    • RCBC-300: Allow the enforcement of PLAIN SASL mechanism. This is necessary when LDAP authentication is enabled, but the SDK does not use client certification to authenticate.

    • RCBC-237: Added collections support for analytics. Scope#analytics_query automatically sets scope qualifier. Also, it is now possible to provide custom qualifier in the options.

    • Status of single operation now accessible on result object of get_multi, upsert_multi, and remove_multi operations.

    • Error context objects now accessible on exceptions (via #context method).

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.0.3.sha256sum

    Source Archive

    couchbase-3.0.3.gem

    Linux x86_64

    3.0.0

    couchbase-3.0.3-x86_64-linux-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.0.3-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.0.3-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.0.3-x86_64-linux-2.5.0.gem

    macOS 11 Universal

    2.6.0

    couchbase-3.0.3-universal-darwin-20-2.6.0.gem

    macOS 10.15 x84_64

    3.0.0

    couchbase-3.0.3-x86_64-darwin-19-3.0.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.0.3-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.0.3-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.0.3-x86_64-darwin-19-2.5.0.gem

    macOS 10.13 x84_64

    3.0.0

    couchbase-3.0.3-x86_64-darwin-17-3.0.0.gem

    macOS 10.13 x84_64

    2.7.0

    couchbase-3.0.3-x86_64-darwin-17-2.7.0.gem

    macOS 10.13 x84_64

    2.6.0

    couchbase-3.0.3-x86_64-darwin-17-2.6.0.gem

    macOS 10.13 x84_64

    2.5.0

    couchbase-3.0.3-x86_64-darwin-17-2.5.0.gem

    Version 3.0.2 (3 November 2020)

    This is the third GA release of 3.0 series.

    gem install couchbase -v 3.0.2

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.0.2.sha256sum

    Source Archive

    couchbase-3.0.2.gem

    Linux x86_64

    2.7.0

    couchbase-3.0.2-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.0.2-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.0.2-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.0.2-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.0.2-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.0.2-x86_64-darwin-19-2.5.0.gem

    macOS 10.13 x84_64

    2.7.0

    couchbase-3.0.2-x86_64-darwin-17-2.7.0.gem

    macOS 10.13 x84_64

    2.6.0

    couchbase-3.0.2-x86_64-darwin-17-2.6.0.gem

    macOS 10.13 x84_64

    2.5.0

    couchbase-3.0.2-x86_64-darwin-17-2.5.0.gem

    Version 3.0.1 (5 October 2020)

    This is the second GA release.

    gem install couchbase -v 3.0.1
    • RCBC-219, RCBC-252: Implemented diagnostics API.

    • RCBC-272: Allow disabling of scoring in Full-Text Search results.

    • RCBC-229: Geopolygon Search support.

    • RCBC-271: Enhanced user management for collections.

    • RCBC-230: Added query option for flex index.

    • RCBC-233: Updated eviction policy types (now it covers ephemeral buckets).

    • RCBC-274: Skip non-kv nodes when switching networks (fixes warnings in Cloud environment).

    • RCBC-266: Deprecated GetResult.expiry.

    • Fixed Query prepared statements cache for older servers.

    • Build and test system improvements.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.0.1.sha256sum

    Source Archive

    couchbase-3.0.1.gem

    Linux x86_64

    2.7.0

    couchbase-3.0.1-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.0.1-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.0.1-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.0.1-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.0.1-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.0.1-x86_64-darwin-19-2.5.0.gem

    macOS 10.13 x84_64

    2.7.0

    couchbase-3.0.1-x86_64-darwin-17-2.7.0.gem

    macOS 10.13 x84_64

    2.6.0

    couchbase-3.0.1-x86_64-darwin-17-2.6.0.gem

    macOS 10.13 x84_64

    2.5.0

    couchbase-3.0.1-x86_64-darwin-17-2.5.0.gem

    Version 3.0.0 (8 September 2020)

    This is the first GA release.

    gem install couchbase -v 3.0.0

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.0.0.sha256sum

    Source Archive

    couchbase-3.0.0.gem

    Linux x86_64

    2.7.0

    couchbase-3.0.0-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.0.0-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.0.0-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.0.0-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.0.0-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.0.0-x86_64-darwin-19-2.5.0.gem

    macOS 10.13 x84_64

    2.7.0

    couchbase-3.0.0-x86_64-darwin-17-2.7.0.gem

    macOS 10.13 x84_64

    2.6.0

    couchbase-3.0.0-x86_64-darwin-17-2.6.0.gem

    macOS 10.13 x84_64

    2.5.0

    couchbase-3.0.0-x86_64-darwin-17-2.5.0.gem

    Version 3.0.0.beta.1 (7 August 2020)

    This is the first beta release.

    Platform

    Ruby ABI

    File

    Checksums

    couchbase-3.0.0.beta.1.sha256sum

    Source Archive

    couchbase-3.0.0.beta.1.gem

    Linux x86_64

    2.7.0

    couchbase-3.0.0.beta.1-x86_64-linux-2.7.0.gem

    Linux x86_64

    2.6.0

    couchbase-3.0.0.beta.1-x86_64-linux-2.6.0.gem

    Linux x86_64

    2.5.0

    couchbase-3.0.0.beta.1-x86_64-linux-2.5.0.gem

    macOS 10.15 x84_64

    2.7.0

    couchbase-3.0.0.beta.1-x86_64-darwin-19-2.7.0.gem

    macOS 10.15 x84_64

    2.6.0

    couchbase-3.0.0.beta.1-x86_64-darwin-19-2.6.0.gem

    macOS 10.15 x84_64

    2.5.0

    couchbase-3.0.0.beta.1-x86_64-darwin-19-2.5.0.gem

    macOS 10.13 x84_64

    2.7.0

    couchbase-3.0.0.beta.1-x86_64-darwin-17-2.7.0.gem

    macOS 10.13 x84_64

    2.6.0

    couchbase-3.0.0.beta.1-x86_64-darwin-17-2.6.0.gem

    macOS 10.13 x84_64

    2.5.0

    couchbase-3.0.0.beta.1-x86_64-darwin-17-2.5.0.gem

    Older Releases

    Although no longer supported, documentation for older releases continues to be available in our docs archive.