MongoDB C Driver 1.28.0 Released

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

libbson

New features:

  • Add bson_validate_with_error_and_offset.

Build Configuration:

  • Remove automatic ccache detection and usage (CCache.cmake).
  • Remove MONGO_USE_CCACHE (no longer applicable; see above).

libmongoc

New features:

  • Support In-Use Encryption range queries.
  • Include insert ID on result of mongoc_collection_insert_one.
  • Add new bulk write API mongoc_bulkwrite_t. Requires MongoDB 8.0. Reduces round-trips for mixed writes.
  • Add serverMonitoringMode URI option.

Improvements:

  • Improve performance of OpenSSL connection creation.
  • Improve performance when trace logging is configured (ENABLE_TRACING=ON) but disabled at runtime.
  • Prefer FIPS compliant functions for SCRAM-SHA-256 key derivation.
  • Remove required slash to delimit options in MongoDB URI (e.g. mongodb://example.com?w=1 parses the same as mongodb://example.com/?w=1).
  • Include topology description in server selection timeout errors.

Notes:

  • Bump minimum wire protocol version from 6 (MongoDB 3.6) to 7 (MongoDB 4.0).
  • Raise required version of libmongocrypt to 1.11.0 to support In-Use Encryption (corresponds to the CMake option: ENABLE_CLIENT_SIDE_ENCRYPTION).

Build Configuration:

  • Remove automatic ccache detection and usage (CCache.cmake).
  • Remove MONGO_USE_CCACHE (no longer applicable; see above).

Changed:

  • Test and example targets are excluded from the ALL target.
    • All test targets can be built using the mongo_c_driver_tests target.
    • All example targets can be built using the mongo_c_driver_examples target.
  • Use #!/usr/bin/env bash instead of #!/bin/sh in uninstall script generated by ENABLE_UNINSTALL=ON.

Deprecated:

  • Use of *_hint functions is deprecated in favor of more aptly named *_server_id functions:
    • mongoc_bulk_operation_set_hint is deprecated for mongoc_bulk_operation_set_server_id
    • mongoc_bulk_operation_get_hint is deprecated for mongoc_bulk_operation_get_server_id
    • mongoc_cursor_set_hint is deprecated for mongoc_cursor_set_server_id
    • mongoc_cursor_get_hint is deprecated for mongoc_cursor_get_server_id
  • A future minor release plans to drop support for Visual Studio 2013.
  • ENABLE_SSL=LIBRESSL is deprecated along with mongoc_stream_tls_libressl_new. Support for LibreSSL may be dropped in a future major release.
  • ENABLE_SASL=CYRUS on Windows platforms is deprecated. Support for ENABLE_SASL=CYRUS on Windows may be dropped in a future major release.
    • The associated Windows-only option CYRUS_PLUGIN_PATH_PREFIX is deprecated.

Links: