github mongodb/mongo-c-driver 2.3.0
mongo-c-driver 2.3.0

16 hours ago

Announcing 2.3.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.

libbson

Improvements

  • bson_t is now trivially relocatable.

Deprecated

  • bson_append_array_begin. Use bson_append_array_builder_begin or bson_append_array_unsafe_begin instead.

libmongoc

New Features

  • Added support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features. The driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.
    • Supported on all commands.
    • Custom application retry logic may need to be adjusted to avoid retrying too long.
    • Upgrade is recommended to avoid impacts of server changes related to overload errors.
      • If not upgrading, custom application retry logic may need to be adjusted to handle higher rates of overload errors. See Overload Errors.
    • Add URI option maxAdaptiveRetries to configure the maximum number of retries for operations that fail with a SystemOverloadedError (default: 2).
    • Add URI option enableOverloadRetargeting to control whether retries of SystemOverloadedError will attempt to use a different server (default: false).
  • Support appending client handshake metadata after initialization and per-client/pool.
    • Adds mongoc_client_append_metadata and mongoc_client_pool_append_metadata.
    • Useful for projects wrapping the C driver to self-identify.
  • Support Kubernetes as a credential provider for MONGODB-OIDC authentication.

Improvements

  • Improve cursor handling on client-side timeouts:
    • Send killCursors after cursor receives client-side timeout.
    • Break early if change stream resumes on repeated client-side timeouts.

Removed

  • Support for macOS versions 13 and older. These versions are EOL and not tested. Use macOS version 14 or newer.

Links:

Thanks to everyone who contributed to this release.

  • Kevin Albertson
  • Connor MacDonald
  • Ezra Chung
  • GitHub user: user-45-20
  • Colby Pike
  • GitHub user: swigger

Don't miss a new mongo-c-driver release

NewReleases is sending notifications on new releases.