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 3.0, 3.1, 3.2, 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.5.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.5.0/couchbase-3.5.0-x86_64-linux.gem
      gem install couchbase-3.5.0-x86_64-linux.gem

      The URL structure is:

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

      where "platform" placeholder can take values: arm64-darwin-22, x86_64-darwin-20, x86_64-linux, x86_64-linux-musl. To see platform string the following command:

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

      and "ruby_abi" placeholder represent Ruby ABI version, as it is reported in

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

      Ruby SDK 3.5 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.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.