Announcing 2.3.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Improvements
bson_tis now trivially relocatable.
Deprecated
bson_append_array_begin. Usebson_append_array_builder_beginorbson_append_array_unsafe_begininstead.
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
maxAdaptiveRetriesto configure the maximum number of retries for operations that fail with aSystemOverloadedError(default:2). - Add URI option
enableOverloadRetargetingto control whether retries ofSystemOverloadedErrorwill attempt to use a different server (default:false).
- Support appending client handshake metadata after initialization and per-client/pool.
- Adds
mongoc_client_append_metadataandmongoc_client_pool_append_metadata. - Useful for projects wrapping the C driver to self-identify.
- Adds
- Support Kubernetes as a credential provider for
MONGODB-OIDCauthentication.
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