C++ Driver for MongoDB

Overview

MongoDB C++ Driver

Travis Build Status Evergreen Build Status codecov Documentation Documentation License

Welcome to the MongoDB C++ Driver!

Branches - releases/stable versus master

The default checkout branch of this repository is releases/stable. This will always contain the latest stable release of the driver. The master branch is used for active development. master should only be used when making contributions back to the driver, as it is not stable for use in production.

See Driver Status by family and version for more details about the various versions of the driver.

Resources

Driver status by family and version

Stability indicates whether this driver is recommended for production use. Currently, no drivers guarantee API or ABI stability.

Family/version Stability Development Purpose
(repo master branch) Unstable Active development New feature development
mongocxx 3.6.x Stable Bug fixes only Current stable C++ driver release
mongocxx 3.5.x Stable None Previous stable C++ driver release
mongocxx 3.4.x Stable None Previous stable C++ driver release
mongocxx 3.3.x Stable None Previous stable C++ driver release
mongocxx 3.2.x Stable None Previous stable C++ driver release
mongocxx 3.1.x Stable None Previous stable C++ driver release
mongocxx 3.0.x Stable None Previous stable C++ driver release

MongoDB compatibility

Compatibility of each C++ driver version with each MongoDB server is documented in the MongoDB manual.

Bugs and issues

See our JIRA project.

License

The source files in this repository are made available under the terms of the Apache License, version 2.0.

Issues
  • CXX-89 Make MingW64 work

    CXX-89 Make MingW64 work

    [CXX_89] Changes to SCons files and minor changes to source files produces a working mingw64 build of client driver.

    msys with mingw64: g++.exe (x86_64-win32-seh, Built by MinGW-W64 project) 4.8.2 boost (1.55) build options: b2 toolset=gcc address-model=64 variant=release link=shared,static threadapi=win32 threading=multi runtime-link=shared -j 4 --prefix=/usr/local/ install scons build options: scons --cxx=which g++ --mingw --boost-postfix=-mgw48-mt-1_55 --ssl --sharedclient --prefix=/usr/local/ -j 4 install-mongoclient

    Caveats: example builds fail during sharedlibrary build

    opened by Climax777 25
  • CXX-218 Added GridFileBuilder for stream-like GridFile writing in GridFS

    CXX-218 Added GridFileBuilder for stream-like GridFile writing in GridFS

    The basic API of the new class will be:

    • GridFileBuilder(GridFS *grid) => the constructor takes the GridFS pointer and annotates the chunkSize which couldn't be changed. The GridFileBuilder will need to access GridFS pointer as a friend, because it needs to access to chunkNS and _client properties.
    • void appendChunk(const char *data, size_t length) => appends the given string of data, which would splitted in several chunks or annotated in the auxiliary buffer. Auxiliary buffer data will be stored at GridFS when it arrives to chunkSize length.
    • BSONObj buildFile(string name, string contentType) => inserts the new file in GridFS using the method insertFile. If the auxiliary buffer contains data, it will be stored before to call insertFile.

    A simple use case is when you need to write a large amount of generated data (not stored in your filesystem disk), and you don't want to store it in temporary disk files.

    opened by pakozm 18
  • CXX-868 Fails to build on VS2015 with error C2719

    CXX-868 Fails to build on VS2015 with error C2719

    Hi!

    Without these changes I got C2719 compiling mongocxx on Windows 10 with Visual Studio 2015 Update 1.

    (full message: error C2719: 'error': formal parameter with requested alignment of 8 won't be aligned)

    Maybe this is interesting for you.

    BR, Max

    opened by quatmax 16
  • Disable trivially_constructible test for atomic on MSVC++.

    Disable trivially_constructible test for atomic on MSVC++.

    MSVC++ implements P0883 unconditionally, which changes the rules for std::atomic. It removes atomic's trivial constructor, and makes the default constructor value initialize the T.

    Note that Mongo was not following the C++11 rules, because it used the atomic before calling atomic_init first. MSVC++ never implemented the C++11 rules and previously default initialized the T.

    All versions of MSVC++ will provide constant initialization of the guarded value "current_instance". In old versions, atomic didn't implement P0883 due to bugs in the constexpr evaluator; in current versions the constexpr evaluator was fixed and atomic value initializes unconditionally. Therefore, this PR disables the check whenever MSVC++'s standard library is detected.

    See https://github.com/microsoft/STL/issues/661 for further discussion.

    opened by BillyONeal 15
  • CXX-813 Fix memory errors exposed by ASAN and Valgrind

    CXX-813 Fix memory errors exposed by ASAN and Valgrind

    • We can't assume that libmongoc has automatically called init/cleanup for us. It only does that on some platforms. That makes it mandatory to have an instance object. Many of our tests didn't do that, and it would be painful for users. Set things up so that an instance is implicitly created as needed, and provide ways to retrieve the instance. This required moving the tests for instance to its own process, among other nuisances.
    • The collection::create_index method was not cleaning up the keys that had been allocated by libbson. Add the needed bson_free call.
    • The collection::distinct method was not cleaning up the temorary database object that it constructs. Add the needed database_destroy call.
    • Fix some mocks so that they write to the bson_error_t out parameter when returning a non-successful code, as otherwise these lead to read-from-uninit errors when we promote the uninitialized bson_error_t to an exception.
    opened by acmorrow 15
  • CXX-754 exception handling example

    CXX-754 exception handling example

    I wasn't totally sure what we'd want out of an exceptions example, so I gave some examples of catching mongocxx exceptions of different types.

    Do you think I should put bsoncxx exception examples in the same file, even though this is the mongocxx folder? Or a separate file in the bsoncxx folder?

    One thing I realized in making this example, is that we don't allow you to test equivalence of mongocxx::exception::code() to known error codes, since our make_error_code functions are private, and our libmongoc and libbson error code enums are private. Is this the behavior we want?

    opened by tessavitabile 15
  • CXX-633 Implement hints

    CXX-633 Implement hints

    Ideas on how to test this for count? The count method on collection just returns a number.

    Edit: discovered the collection mocking framework! Will update with tests, and fix Travis.

    opened by samantharitter 15
  • cmake: honor LIB_SUFFIX

    cmake: honor LIB_SUFFIX

    On some systems, e.g., Fedora, libraries are installed to /usr/lib64. A typical pattern is to honor a variable named LIB_SUFFIX. It is common and specified by default in the Fedora build system if necessary.

    This patch extends the installation paths from "lib" to "lib${LIB_SUFFIX" in order to allow for proper packaging and installation.

    The suffix can be set as "-DLIB_SUFFIX=64" and is ignored if not set.

    opened by timn 13
  • CXX-360 add support for authMechanismProperties

    CXX-360 add support for authMechanismProperties

    Our SASL implementation seems to only have support for SERVICE_NAME, so I left the others out. They are listed as "MAY IMPLEMENT" in the spec anyway.

    opened by amidvidy 12
  • CXX-348 no journal preallocation in tests

    CXX-348 no journal preallocation in tests

    Journal preallocation can take over 90 seconds on Ubuntu 1404 :O

    Adding the --smallfiles flag to our mongod speeds this up to consistently under 20 seconds. We'll still need to wait a bit for journal allocation to finish before connecting to the mongod.

    Also, I am not sure why this is only showing up in our integration tests. My guess is that the other tasks take more time to do additional setup before attempting to connect to the mongod, or that those tasks have been running on faster or less-fragmented machines.

    opened by samantharitter 12
  • CXX-710 - Allow copying of collections

    CXX-710 - Allow copying of collections

    I wasn't sure if/how to write tests for this. I tested by trying the following assignments:

    auto collection2 = collection;

    mongocxx::collection collection2 {collection};

    auto collection2 = mongocxx::collection(collection);

    auto collection2 = conn["testdb"]["testcollection2"]; collection2 = collection;

    opened by tessavitabile 11
Releases(r3.6.7)
  • r3.6.7(May 3, 2022)

  • r3.7.0-beta1(Oct 5, 2021)

  • r3.6.6(Oct 5, 2021)

  • r3.6.5(Jun 4, 2021)

  • r3.6.4(Jun 4, 2021)

  • r3.6.3(Apr 7, 2021)

  • r3.6.2(Dec 1, 2020)

  • r3.6.1(Nov 3, 2020)

  • r3.6.0(Jul 30, 2020)

    Release Notes - C++ Driver - Version 3.6.0

    Bug

    • [CXX-1950] - Drivers must run SDAM flow even when server description is equal to the last one
    • [CXX-2025] - $changeStream must be the first stage in a change stream
    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods
    • [CXX-2037] - Cannot build on Windows with Visual Studio 2019
    • [CXX-2079] - s390x Ubuntu 16.04 (MongoDB Latest) test failures

    New Feature

    • [CXX-1687] - Support Client-side Field Level Encryption
    • [CXX-1716] - Add support for Zstandard compression
    • [CXX-1746] - Ensure that getMore right after a resume is retried
    • [CXX-1785] - Spec: Finer-grained updates from aggregation via $merge
    • [CXX-1853] - support ability to pass hint to update
    • [CXX-1872] - MONGODB-AWS Support
    • [CXX-1873] - Support for allowDiskUse on find operations
    • [CXX-1874] - Allow passing hint to findAndModify update and replace operations
    • [CXX-1936] - Reduce Client Time To Recovery On Topology Changes
    • [CXX-1947] - Allow hinting the delete command
    • [CXX-1966] - Driver support for server Hedged Reads
    • [CXX-1998] - 'CommitQuorum' option support for 'createIndexes’ command on MongoDB 4.4

    Improvement

    • [CXX-1880] - bsoncxx::element::array does not expose key() function
    • [CXX-1910] - OCSP Support
    • [CXX-1912] - Raise error if hint specified for unacknowledged update using OP_MSG or OP_UPDATE
    • [CXX-1934] - Unify behavior around configuration for replica set discovery
    • [CXX-1948] - Do not repeatedly resume if getMore receives the same error
    • [CXX-1965] - Ensure that the WriteConcernError "errInfo" object is propagated
    • [CXX-1969] - Add URI option to disable certificate revocation checking
    • [CXX-1972] - Implement b_type struct -> bson_value_t conversions
    • [CXX-1973] - Bump minimum required C driver
    • [CXX-1976] - Add RetryableWriteError error labels to retryable transaction tests
    • [CXX-1978] - Deprecate geoHaystack and geoSearch
    • [CXX-1994] - Add missing URI option getters
    • [CXX-2000] - Don't use admin database for FLE tests
    • [CXX-2007] - Hidden Indexes
    • [CXX-2024] - allowDiskUse option for find should be documented as only being supported in 4.4+
    • [CXX-2058] - Update our testing framework (catch)
    • [CXX-2059] - Add key_id getter to mongocxx::options::encrypt
    • [CXX-2063] - options::encrypt::key_id() should take a bson_value
    • [CXX-2066] - implement a make_value helper
    • [CXX-2069] - Treat CursorNotFound as a resumable change stream error
    Source code(tar.gz)
    Source code(zip)
    mongo-cxx-driver-r3.6.0.tar.gz(1.32 MB)
  • r3.6.0-rc0(Jul 21, 2020)

    Release Notes - C++ Driver - Version 3.6.0-rc0

    Bug

    • [CXX-1950] - Drivers must run SDAM flow even when server description is equal to the last one
    • [CXX-2025] - $changeStream must be the first stage in a change stream
    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods
    • [CXX-2037] - Cannot build on Windows with Visual Studio 2019

    New Feature

    • [CXX-1687] - Support Client-side Field Level Encryption
    • [CXX-1716] - Add support for Zstandard compression
    • [CXX-1746] - Ensure that getMore right after a resume is retried
    • [CXX-1785] - Spec: Finer-grained updates from aggregation via $merge
    • [CXX-1853] - support ability to pass hint to update
    • [CXX-1872] - MONGODB-AWS Support
    • [CXX-1873] - Support for allowDiskUse on find operations
    • [CXX-1874] - Allow passing hint to findAndModify update and replace operations
    • [CXX-1936] - Reduce Client Time To Recovery On Topology Changes
    • [CXX-1947] - Allow hinting the delete command
    • [CXX-1966] - Driver support for server Hedged Reads
    • [CXX-1998] - 'CommitQuorum' option support for 'createIndexes’ command on MongoDB 4.4

    Improvement

    • [CXX-1880] - bsoncxx::element::array does not expose key() function
    • [CXX-1910] - OCSP Support
    • [CXX-1912] - Raise error if hint specified for unacknowledged update using OP_MSG or OP_UPDATE
    • [CXX-1934] - Unify behavior around configuration for replica set discovery
    • [CXX-1948] - Do not repeatedly resume if getMore receives the same error
    • [CXX-1965] - Ensure that the WriteConcernError "errInfo" object is propagated
    • [CXX-1969] - Add URI option to disable certificate revocation checking
    • [CXX-1972] - Implement b_type struct -> bson_value_t conversions
    • [CXX-1973] - Bump minimum required C driver
    • [CXX-1976] - Add RetryableWriteError error labels to retryable transaction tests
    • [CXX-1978] - Deprecate geoHaystack and geoSearch
    • [CXX-1994] - Add missing URI option getters
    • [CXX-2000] - Don't use admin database for FLE tests
    • [CXX-2024] - allowDiskUse option for find should be documented as only being supported in 4.4+
    • [CXX-2058] - Update our testing framework (catch)
    • [CXX-2059] - Add key_id getter to mongocxx::options::encrypt
    • [CXX-2063] - options::encrypt::key_id() should take a bson_value
    • [CXX-2066] - implement a make_value helper
    • [CXX-2069] - Treat CursorNotFound as a resumable change stream error
    Source code(tar.gz)
    Source code(zip)
    mongo-cxx-driver-r3.6.0-rc0.tar.gz(1.32 MB)
  • r3.4.2(Jun 3, 2020)

    Release Notes - C++ Driver - Version 3.4.2

    The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.4.2. This release provides bug fixes since r3.4.1.

    Please note that this version of mongocxx requires the MongoDB C driver 1.13.0 or higher.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    The mongocxx 3.4.x series does not promise API or ABI stability across patch releases.

    Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    The following are user-visible issues that have been resolved in 3.4.2 since the prior release:

    Bug

    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods.
    Source code(tar.gz)
    Source code(zip)
  • r3.3.2(Jun 3, 2020)

    Release Notes - C++ Driver - Version 3.3.2

    The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.3.2. This release provides bug fixes since r3.3.1.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1 or higher.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    The mongocxx 3.3.x series does not promise API or ABI stability across patch releases.

    Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    The following are user-visible issues that have been resolved in 3.3.2 since the prior release:

    Bug

    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods.
    Source code(tar.gz)
    Source code(zip)
  • r3.2.1(Jun 3, 2020)

    Release Notes - C++ Driver - Version 3.2.1

    The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.2.1. This release provides bug fixes since r3.2.0.

    Please note that this version of mongocxx requires the MongoDB C driver 1.9.2 or higher.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    The mongocxx 3.2.x series does not promise API or ABI stability across patch releases.

    Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    The following are user-visible issues that have been resolved in 3.2.1 since the prior release:

    Bug

    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods.
    Source code(tar.gz)
    Source code(zip)
  • r3.5.1(Jun 3, 2020)

    Release Notes - C++ Driver - Version 3.5.1

    The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.5.1. This release provides bug fixes since r3.5.0.

    Please note that this version of mongocxx requires the MongoDB C driver 1.15.0 or higher.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    The mongocxx 3.5.x series does not promise API or ABI stability across patch releases.

    Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    The following are user-visible issues that have been resolved in 3.5.1 since the prior release:

    Bug

    • [CXX-2028] - Explicit write concern is incorrectly applied to collection::find_one_and_* methods.
    Source code(tar.gz)
    Source code(zip)
    mongo-cxx-driver-r3.5.1.tar.gz(1.21 MB)
  • r3.5.0(Mar 31, 2020)

    Release Notes - C++ Driver - Version 3.5.0

    The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.5.0. This release provides support for new features in MongoDB 4.2.

    Please note that this version of mongocxx requires the MongoDB C driver 1.15.0 or higher.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    The mongocxx 3.5.x series does not promise API or ABI stability across patch releases.

    Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    The following are user-visible issues that have been resolved in 3.5.0 since the prior release:

    Bug

    • [CXX-1688] - MongoDB CXX driver does not compile with standard polyfill.
    • [CXX-1689] - database::_create_collection is not using C++17-compatible string conversion.
    • [CXX-1693] - Test with latest gcc
    • [CXX-1720] - clang 7.0.1, Linux, c++14, libc++, ambiguous overload in change_stream.cpp
    • [CXX-1769] - ChangeStream spec's Resumable Error definition is too broad
    • [CXX-1901] - Building C++ driver from master fails to find cmake packages of C driver
    • [CXX-1922] - scoped_bson_t::steal() doesn't clear _is_initialized flag
    • [CXX-1938] - Catch does not guarantee running at least one test SECTION per TEST_CASE run

    New Feature

    • [CXX-1669] - Add an uninstall target
    • [CXX-1678] - std::aligned_storage build failure with extra alignment
    • [CXX-1681] - Implement Unified URI Options
    • [CXX-1682] - Implement Convenient API for Transactions
    • [CXX-1684] - Support mongos pinning for sharded transactions
    • [CXX-1685] - Retryable Reads
    • [CXX-1691] - Connections survive primary stepdown
    • [CXX-1695] - Support sharded transactions recovery token
    • [CXX-1696] - Aggregate command must be sent to a primary if it uses $out
    • [CXX-1701] - Resync transactions tests to include test with session1 in APM expectations
    • [CXX-1702] - Add database aggregate helper
    • [CXX-1711] - Add CMake flags to build both shared and static libraries
    • [CXX-1715] - Support 'startAfter' option to the $changeStream stage
    • [CXX-1719] - Drivers should use majority write concern when retrying commitTransaction
    • [CXX-1721] - Drivers should ignore batchSize=0 for aggregate with $out
    • [CXX-1732] - Support Retryable Writes on by Default
    • [CXX-1734] - Support postBatchResumeToken in change streams
    • [CXX-1742] - Resync transaction spec tests for bulk write error reporting change
    • [CXX-1743] - Add support for majority read concern level to Aggregation $out
    • [CXX-1755] - Require retryable writes network error tests to run on mongos 4.2+
    • [CXX-1756] - Add the ability to specify a pipeline to an update command
    • [CXX-1759] - Document connection string and URI option precedence rules
    • [CXX-1761] - Use runOn syntax to specify transaction test requirements
    • [CXX-1771] - Allow applications to set maxTimeMS for commitTransaction
    • [CXX-1805] - Operating System Removals/Updates for 4.2
    • [CXX-1806] - Raise an actionable error message when retryWrites fails due to using an unsupported storage engine

    Improvement

    • [CXX-1532] - Demonstrate "pool" in thread-safety.md
    • [CXX-1572] - Retryable writes should consider more errors retryable
    • [CXX-1637] - Delete deprecated collection::replace_one overloads
    • [CXX-1670] - Add test that reads ignore db/collection readConcern in transaction
    • [CXX-1680] - COPYING and THIRD_PARTY_NOTICES should be installed to $PREFIX/share/doc/mongo-cxx-driver
    • [CXX-1707] - Export targets for CMake project
    • [CXX-1752] - Remove GitPython from calc_release_version.py
    • [CXX-1783] - Don't send $readPreference to standalone servers
    • [CXX-1790] - Test MongoDB 4.2 in Evergreen
    • [CXX-1795] - Use runOn syntax to specify CRUD test requirements
    • [CXX-1820] - Deprecation warning on mongoc_uri_get_ssl
    • [CXX-1834] - Make pipeline extensible
    • [CXX-1899] - Typos in install guide
    Source code(tar.gz)
    Source code(zip)
    mongo-cxx-driver-r3.5.0.tar.gz(1.21 MB)
  • r3.4.1(Mar 3, 2020)

    This patch release addresses compilation issues when compiling without a polyfill on C++17 supporting compilers.

    Please note that this version of mongocxx requires the MongoDB C driver 1.13.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.4.x series does not promise API or ABI stability across patch releases.

    Here is the full list of user-visible issues that have been resolved in 3.4.1 since the prior 3.4.0 release:

    Bug

    • [CXX-1688] - MongoDB CXX driver does not compile with standard polyfill.
    • [CXX-1689] - database::_create_collection is not using C++17-compatible string conversion.
    Source code(tar.gz)
    Source code(zip)
  • r3.4.0(Oct 15, 2018)

    This is the first stable release in the mongocxx 3.4 series.

    This release provides support for new features MongoDB 4.0 (most notably transactions) as well as command monitoring and SDAM monitoring.

    Please note that this version of mongocxx requires the MongoDB C driver 1.13.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.4.x series does not promise API or ABI stability across patch releases.

    Here is the full list of user-visible issues that have been resolved in 3.4.0 since the prior 3.3 series:

    New Feature

    • [CXX-1385] - Add API for subscribing to SDAM events
    • [CXX-1386] - Implement command monitoring API
    • [CXX-1433] - Implement Database Enumeration spec
    • [CXX-1478] - Support ReplaceOptions in CRUD API
    • [CXX-1505] - Implement SASLPrep
    • [CXX-1509] - SCRAM-SHA-256 Support
    • [CXX-1531] - Implement Transactions spec
    • [CXX-1538] - Delete public bulk_write constructor
    • [CXX-1541] - Handshake changes for SDAM and Auth
    • [CXX-1558] - Remove collection::bulk_write(bulk_write&)
    • [CXX-1559] - Update SCRAM-SHA-256 implementation and tests for spec change
    • [CXX-1582] - Support nameOnly option in listCollections command
    • [CXX-1584] - Add helpers and options for Change Streams Follow-on Work
    • [CXX-1585] - Remove MD5 from ObjectID generation
    • [CXX-1592] - Add MongoDB 4.0 to the Evergreen matrix
    • [CXX-1594] - Implement new count API
    • [CXX-1616] - Remove equality/inequality operators from options classes
    • [CXX-1622] - Test only the initial command in a transaction includes readConcern
    • [CXX-1639] - Support new readConcern level "available"
    • [CXX-1658] - Generate C Driver version number when installing

    Bug

    • [CXX-1595] - GNU 4.9.3: 'max_align_t' was not declared
    • [CXX-1625] - Android NDK r17 compiler error
    • [CXX-1626] - CRUD operations set ordered to false by default
    • [CXX-1638] - Don't call string_view::to_string

    Improvement

    • [CXX-1499] - Don't access bson_iter_t internals
    • [CXX-1500] - document::view::find should use bson_iter...w_len functions
    • [CXX-1528] - Deprecate snapshot option
    • [CXX-1562] - Port session tests to mongocxx command monitoring API
    • [CXX-1573] - Spec tests should use the same format for bulk writes
    • [CXX-1577] - Flexible collection creation
    • [CXX-1578] - Remove options::aggregate::use_cursor
    • [CXX-1580] - Log backtraces in test failures on Evergreen
    • [CXX-1586] - Add user commands to list of commands that write
    • [CXX-1591] - Only send bypassDocumentValidation if it's true
    • [CXX-1596] - Use mongoc_cursor_new_from_command_reply_with_opts
    • [CXX-1601] - Update ChangeStream spec to detail usage of startAtOperationTime
    • [CXX-1620] - Migrate from functions deprecated in libmongoc 1.12
    • [CXX-1651] - Rewrite "Contributing" page
    • [CXX-1653] - Remove database::modify_collection
    • [CXX-1657] - Require libbson and libmongoc 1.13.0
    • [CXX-1660] - Fix doxygen warnings
    • [CXX-1666] - improve documentation of element::bool()
    Source code(tar.gz)
    Source code(zip)
  • r3.3.1(Jul 27, 2018)

    This release provides bug fixes since r3.3.0.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.3.x series does not promise API or ABI stability across patch releases.

    Bug

    • [CXX-1614] - Client constructed with independently defined SSL options always crashes
    Source code(tar.gz)
    Source code(zip)
  • r3.3.0(Jun 12, 2018)

    This is the first stable release in the mongocxx 3.3 series.

    This release provides additional support for new features in MongoDB 3.6, introduces support for client sessions and change streams, and includes a large number of fixes and improvements since the 3.2 release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.3.x series does not promise API or ABI stability across patch releases.

    The only change since 3.3.0-rc0 is a test that verifies client sessions are prohibited with unacknowledged writes. Here is the full list of user-visible issues that have been resolved in 3.3.0 since the prior 3.2 series:

    New Feature

    • [CXX-1184] - Prevent misuse of client temporaries
    • [CXX-1390] - Array Update Improvements
    • [CXX-1398] - Implement session and session options API
    • [CXX-1399] - Implement session
    • [CXX-1400] - PIMPL session
    • [CXX-1401] - Make collection and database modifications for sessions
    • [CXX-1402] - Update thread/fork safety for sessions
    • [CXX-1403] - Add page on sessions
    • [CXX-1404] - Add a session example
    • [CXX-1408] - Add Change Stream API
    • [CXX-1414] - Change stream support
    • [CXX-1416] - Causally Consistent Reads support
    • [CXX-1519] - Document how to use the latest TLS protocols
    • [CXX-1549] - Deprecate public bulk_write constructors
    • [CXX-1552] - Drop MongoDB 2.6
    • [CXX-1557] - Deprecate collection::bulk_write(bulk_write&), add bulk_write::execute()
    • [CXX-1560] - Add clusterTime property to static type for change stream documents
    • [CXX-1567] - Deprecate autoIndexId for collection creation

    Bug

    • [CXX-1511] - Client constructor should throw if mongoc_uri_new_with_error fails
    • [CXX-1553] - Wrong ctor call to b_timestamp
    • [CXX-1564] - Cannot set use_cursor or batch_size with aggregation cursor

    Improvement

    • [CXX-1498] - Upgrade to C driver 1.10
    • [CXX-1516] - Decrease likelihood of implicit session leaks
    • [CXX-1525] - Migrate from APIs deprecated in libmongoc 1.9.0 and older
    • [CXX-1529] - Update algorithm for Kerberos hostname canonicalization
    • [CXX-1536] - Use libmongoc "with_opts" bulk operation functions
    • [CXX-1550] - Build C Driver with CMake on Evergreen
    • [CXX-1565] - Use mongoc_collection_find_and_modify_with_opts
    • [CXX-1568] - Initial aggregate command for a change stream should not be retried

    Task

    • [CXX-1518] - Prohibit using unacknowledged writes with explicit sessions
    Source code(tar.gz)
    Source code(zip)
  • r3.3.0-rc0(May 31, 2018)

    This is the first release candidate for mongocxx 3.3.0, the MongoDB C++11 driver.

    This release provides additional support for new features in MongoDB 3.6, introduces support for client sessions and change streams, and includes a large number of fixes and improvements since the 3.2 release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.3.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.3.0-rc0 since the prior 3.2 series are as follows:

    New Feature

    • [CXX-1184] - Prevent misuse of client temporaries
    • [CXX-1390] - Array Update Improvements
    • [CXX-1398] - Implement session and session options API
    • [CXX-1399] - Implement session
    • [CXX-1400] - PIMPL session
    • [CXX-1401] - Make collection and database modifications for sessions
    • [CXX-1402] - Update thread/fork safety for sessions
    • [CXX-1403] - Add page on sessions
    • [CXX-1404] - Add a session example
    • [CXX-1408] - Add Change Stream API
    • [CXX-1414] - Change stream support
    • [CXX-1416] - Causally Consistent Reads support
    • [CXX-1519] - Document how to use the latest TLS protocols
    • [CXX-1549] - Deprecate public bulk_write constructors
    • [CXX-1552] - Drop MongoDB 2.6
    • [CXX-1557] - Deprecate collection::bulk_write(bulk_write&), add bulk_write::execute()
    • [CXX-1560] - Add clusterTime property to static type for change stream documents
    • [CXX-1567] - Deprecate autoIndexId for collection creation

    Bug

    • [CXX-1511] - Client constructor should throw if mongoc_uri_new_with_error fails
    • [CXX-1553] - Wrong ctor call to b_timestamp
    • [CXX-1564] - Cannot set use_cursor or batch_size with aggregation cursor

    Improvement

    • [CXX-1498] - Upgrade to C driver 1.10
    • [CXX-1516] - Decrease likelihood of implicit session leaks
    • [CXX-1525] - Migrate from APIs deprecated in libmongoc 1.9.0 and older
    • [CXX-1529] - Update algorithm for Kerberos hostname canonicalization
    • [CXX-1536] - Use libmongoc "with_opts" bulk operation functions
    • [CXX-1550] - Build C Driver with CMake on Evergreen
    • [CXX-1565] - Use mongoc_collection_find_and_modify_with_opts
    • [CXX-1568] - Initial aggregate command for a change stream should not be retried
    Source code(tar.gz)
    Source code(zip)
  • r3.2.0(Feb 28, 2018)

    This is the first stable release in the mongocxx 3.2 series.

    This release introduces support for MongoDB 3.4 features, as well as partial support for some MongoDB 3.6 features and GridFS support.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.9.2 or newer.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.2 series does not promise API or ABI stability across patch releases.

    Changes since the prior 3.2.0-rc1 release:

    Bug

    • [CXX-1435] - problem with the mongocxx::result::insert_many class
    • [CXX-1446] - `mongoc_collection_get_last_error` is deprecated in 1.8.x of libmongoc
    • [CXX-1521] - Basic builder document/array types should have noexcept move ctor and assignment op

    New Feature

    • [CXX-1390] - Array Update Improvements
    • [CXX-1405] - OP_MSG support
    • [CXX-1415] - All writes retryable support
    • [CXX-1418] - Parse localLogicalSessionTimeoutMinutes from isMaster response
    • [CXX-1438] - Implement Initial DNS Seedlist discovery spec

    Task

    • [CXX-1470] - Improve server compatibility error messages for wire version checks
    • [CXX-1475] - Resync retryable writes test
    • [CXX-1488] - Fix issues identified by coverity
    • [CXX-1493] - Upgrade C driver minimum to 1.9.2
    • [CXX-1506] - GridFS MD5 digest must be optional
    Source code(tar.gz)
    Source code(zip)
  • r3.1.4(Feb 28, 2018)

    This is the fifth stable release in the mongocxx 3.1.x series.

    This release provides bug fixes since r3.1.3.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.7.0 or newer. Prior releases in the 3.1.x series only required 1.5.0 or newer, however the fixes included in this release depend on associated fixes that did not arrive in the C driver until 1.7.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.1.4 since the prior 3.1.3 series are as follows:

    Bug

    • [CXX-1252] - Tailable cursors only work once
    • [CXX-1258] - Cursor iterators lose lockstep at cursor end
    Source code(tar.gz)
    Source code(zip)
  • legacy-1.1.3(Feb 28, 2018)

    This is a minor patch release above the prior legacy-1.1.2 release, and is a recommended upgrade for all users of legacy-1.1.2 or older legacy driver releases.

    Bug

    • [CXX-951] - "'ref' is not a member of 'boost'" error when compiling legacy driver in C++11 mode
    • [CXX-1426] - Check cursor pointers before using them
    Source code(tar.gz)
    Source code(zip)
  • r3.2.0-rc1(Dec 6, 2017)

    This is the second release candidate for mongocxx 3.2.0, the MongoDB C++11 driver.

    This release includes fixes for bugs found in 3.2.0-rc0. Please see the 3.2.0-rc0 release notes for information on changes since the prior 3.1.x release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.8.2.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.2.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.2.0-rc1 since 3.2.0-rc0 series are as follows:

    Bug

    • [CXX-1476] - Element search stops prematurely due to missing string length check
    Source code(tar.gz)
    Source code(zip)
  • r3.2.0-rc0(Nov 17, 2017)

    This is the first release candidate for mongocxx 3.2.0, the MongoDB C++11 driver.

    This release provides additional support for new features in MongoDB 3.4, introduces support for GridFS, and includes a large number of fixes and improvements since the 3.1.x release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.8.2.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.2.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.2.0-rc0 since the prior 3.1.x series are as follows:

    Bug

    • [CXX-771] - Change collection methods to use options.max_time()
    • [CXX-994] - Fix missing or misleading docs about pools, thread/fork safety and background monitoring
    • [CXX-1014] - bsoncxx::builder::core exceptions are undocumented
    • [CXX-1043] - Add doxygen tag for mongocxx and bsoncxx namespaces
    • [CXX-1080] - Document autoIndexId as deprecated
    • [CXX-1118] - BSON Regex flags must be alphabetically ordered
    • [CXX-1144] - Mutator methods which return non-void should document their return value
    • [CXX-1150] - bsoncxx builders should error when multiple keys are pushed without a value
    • [CXX-1151] - bsoncxx::builder::core::view_document() and bsoncxx::builder::core::view_array() should throw when builder top-level BSON datum type is incorrect
    • [CXX-1152] - Context enforcement for BSON stream builder doesn't play nicely with statements that leave open sub-documents or sub-arrays
    • [CXX-1158] - Unable to link against SSL libs on MacOS
    • [CXX-1163] - Compiling with SSL support doesn't work
    • [CXX-1172] - Document `result::bulk_write::modified_count()` throws with mongod 2.4
    • [CXX-1175] - Drivers MUST NOT require a username *in the URI* for MONGODB-X509
    • [CXX-1178] - CMAKE_C_COMPILER, CMAKE_CXX_COMPILER not passed to CMake invocation for EP_mnmlstc_core
    • [CXX-1187] - mongocxx::uri::database() segfaults if no database specified in URL
    • [CXX-1196] - Improve mongocxx::instance documentation
    • [CXX-1220] - Invalid URI passed to SSL unit test for mongocxx::pool
    • [CXX-1228] - fix minor issues with stream builder and example
    • [CXX-1231] - When patching include paths to use 'mnmlstc', avoid filename collisions (PR #582)
    • [CXX-1242] - Index pages from each section in driver manual fail to render properly
    • [CXX-1243] - Audit GridFS implementation for correct handling of user-provided and server-provided file lengths and chunk sizes
    • [CXX-1246] - bsoncxx::builder::stream::single_context should not permit appending of multiple values
    • [CXX-1252] - Tailable cursors only work once
    • [CXX-1254] - Document that write_concern timeout of zero means no timeout
    • [CXX-1258] - Cursor iterators lose lockstep at cursor end
    • [CXX-1279] - Copy assignment for database/collection incorrectly degrades to no-op if rhs is default-constructed
    • [CXX-1281] - collection::find() and collection::distinct() leak a mongoc_cursor_t on some error paths
    • [CXX-1285] - aggregate sets read preference option incorrectly
    • [CXX-1300] - Prevent mongoc_init/mongoc_cleanup from running more than once
    • [CXX-1302] - Documentation for read_concern::acknowledge_string() should clarify that any read concern string can be passed in
    • [CXX-1317] - bucket::upload_from_stream() and bucket::upload_from_stream_with_id() should abort upload on failure
    • [CXX-1322] - gridfs::bucket::upload_from_stream and upload_from_stream_with_id infinitely loop on invalid ifstream without error bits set
    • [CXX-1324] - Examples not running under Ubuntu 16.04 builders
    • [CXX-1325] - Overly-greedy template substitution in declarations of comparison operator free functions for bsoncxx::types::value
    • [CXX-1338] - Capped size in bytes is limited to 32bit integer, need 64bit integer
    • [CXX-1341] - Wrong integer type for many CRUD spec API fields
    • [CXX-1346] - PR: fixing more __imp_bson and __imp_mongoc linker errors
    • [CXX-1347] - Calls to bson_append_* are not checked for errors in the core builder
    • [CXX-1367] - bsoncxx::types::timestamp t and i parts are reversed
    • [CXX-1387] - Bulk write operations don't inherit write concern from the collection
    • [CXX-1441] - Build fails on Evergreen because of use of deprecated libmongoc API
    • [CXX-1453] - Compilation fails on GCC 6 due to -Wignored-attributes
    • [CXX-1454] - list_collections test fails with MMAPv1 storage engine
    • [CXX-1458] - Deprecate ~frame() destructor, and add close() function as replacement
    • [CXX-1461] - Missing UNREACHABLE in json.cpp
    • [CXX-1463] - b_regex and b_codewscope constructors lack SFINAE protections

    Epic

    • [CXX-1257] - Revise static library naming and link configuration
    • [CXX-1358] - Implement the index view API for the C++ driver
    • [CXX-1372] - Implement the microbenchmark suite and generate scores for the driver

    New Feature

    • [CXX-915] - Add example of how to write a CMake project to build against the C++11 driver
    • [CXX-995] - Add mongocxx::pool examples
    • [CXX-1055] - Add new read_preference setters that support method chaining, deprecate existing setters and constructors
    • [CXX-1060] - Adopting bsoncxx::stdx polyfills into mongocxx::stdx namespace is confusing
    • [CXX-1075] - Add section to manual on connecting with auth and SSL
    • [CXX-1085] - Inconsistent API for operation level write concern
    • [CXX-1086] - Deprecate non-const methods on mongocxx::client
    • [CXX-1087] - Public method documentation for command helpers should point users to command reference, not shell method reference
    • [CXX-1121] - Include MONGOCXX_CALL and BSONCXX_CALL macros with function definitions
    • [CXX-1130] - Implement GridFS Spec
    • [CXX-1159] - Make unwrapping conversion operators constant (PR #577)
    • [CXX-1160] - Please add instructions to compile Mongo C++ driver as static library
    • [CXX-1161] - b_regex should provide a default value for options string
    • [CXX-1174] - Introduce make_document() and make_array() helpers, builder::core append style methods should return ref-to-this
    • [CXX-1202] - Document how to build array in a loop with stream builder
    • [CXX-1207] - Update vendored Catch to latest stable version
    • [CXX-1233] - Create GridFS upload/download example
    • [CXX-1241] - Implement Extended JSON spec
    • [CXX-1255] - Add a "file length" accessor to gridfs::downloader
    • [CXX-1280] - Basic builders are not copyable or movable
    • [CXX-1282] - collection::name() should not guarantee returned string is null-terminated
    • [CXX-1283] - scoped_bson_t should simplify use case providing a pointer for initialization
    • [CXX-1307] - bsoncxx: Change static library name to "bsoncxx-static", add static-only pkg-config and CMake config files
    • [CXX-1308] - Add basic integration tests for GridFS bucket methods other than open_upload_stream()/open_download_stream()
    • [CXX-1313] - "bsoncxx" depends on "bson-1.0" if BUILD_SHARED_LIBS, else depends on "bson-static-1.0"
    • [CXX-1315] - mongocxx: Change static library name to "mongocxx-static", add static-only pkg-config and CMake config files, depend on mongoc-static-1.0 if BUILD_SHARED_LIBS=OFF
    • [CXX-1316] - Add tests for installed pkg-config and installed CMake config files
    • [CXX-1318] - Add GridFS integration tests which upload/download files of size >4 GB
    • [CXX-1334] - Add index hint to aggregation and non-materialized views
    • [CXX-1356] - Add support for reading and writing OP_COMPRESSED
    • [CXX-1359] - Replace use of index options in API with BSON document
    • [CXX-1360] - Implement index_model and add dummy implementation of index_view
    • [CXX-1362] - Replace dummy index view implementation with actual implementation
    • [CXX-1464] - Support non-experimental use of std::optional and string::view in C++17 mode

    Improvement

    • [CXX-869] - mongocxx::result::insert_many::inserted_ids() should be const
    • [CXX-984] - Improve use of bson_init_static
    • [CXX-992] - bsoncxx::document::view::find() should be rewritten to avoid string allocation
    • [CXX-1169] - Minor refactoring (PR #578)
    • [CXX-1188] - Add functionality to write a model for mongocxx::collection
    • [CXX-1217] - GridFS download streams should kill the cursor when closed
    • [CXX-1333] - Cache SCRAM-SHA-1 ClientKey
    • [CXX-1429] - Document polyfill option BSONCXX_POLY_USE_SYSTEM_MNMLSTC
    • [CXX-1447] - Reduce use of deprecated methods in test files
    Source code(tar.gz)
    Source code(zip)
  • r3.1.3(Aug 21, 2017)

    This is the fourth stable release in the mongocxx 3.1.x series.

    This release provides bug fixes since r3.1.2.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.5.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.1.3 since the prior 3.1.2 series are as follows:

    Bug

    • [CXX-1423] - Add missing include for <cassert> in tests
    Source code(tar.gz)
    Source code(zip)
  • r3.1.2(Jul 12, 2017)

    This is the third stable release in the mongocxx 3.1.x series.

    This release provides bug fixes since r3.1.1.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.5.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.1.2 since the prior 3.1.1 series are as follows:

    Bug

    • [CXX-1191] - Backport mongocxx::uri::database() segfaults if no database specified in URL
    • [CXX-1371] - Backport fix for b_timestamp fields appending in wrong order
    Source code(tar.gz)
    Source code(zip)
  • r3.1.1(Dec 20, 2016)

    This is the second stable release in the mongocxx 3.1.x series.

    This release provides bug fixes since r3.1.0.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.5.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.1.1 since the prior 3.1.0 series are as follows:

    Bug

    • [CXX-1167] - Backport CXX-1163 - Compiling with SSL support doesn't work
    • [CXX-1170] - Backport CXX-1158 - Unable to link against SSL libs on MacOS
    • [CXX-1176] - Backport CXX-1043 - Add doxygen tag for mongocxx and bsoncxx namespaces
    Source code(tar.gz)
    Source code(zip)
  • r3.1.0(Dec 13, 2016)

    This is the first stable release in the mongocxx 3.1.x series.

    This release provides support for new features in MongoDB 3.4.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.5.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    Note that there are no changes since the prior 3.1.0-rc0 release, with the exception of two documentation fixes (CXX-1149 and CXX-1155).

    The full list of user-visible issues that have been resolved in 3.1.0 since the prior 3.0.x series are as follows:

    Bug

    • [CXX-894] - Return disengaged result optionals for unack'ed write operations
    • [CXX-938] - stdx polyfills are not declared in the ABI inline namespace
    • [CXX-1001] - mongocxx::cursor.begin() increments the iterator
    • [CXX-1009] - mongocxx::pool should take options::pool, not options::ssl
    • [CXX-1039] - Update link to final collation page in 3.4 manual
    • [CXX-1047] - MSVC warning C4714, bsoncxx operator <<, view() etc. marked as __forceinline not inlined
    • [CXX-1061] - Update link to final views page in 3.4 manual
    • [CXX-1065] - read_concern::acknowledge_string should return const string_view
    • [CXX-1070] - Confusing installation instructions
    • [CXX-1093] - collection::distinct() should return error to user if collation specified and connection max wire version < 5
    • [CXX-1100] - Having more than one iterator per cursor violates mongoc lifecycle constraints
    • [CXX-1109] - Integration tests should pass against server versions 2.4 through 3.0
    • [CXX-1135] - Read preference option not applied to distinct
    • [CXX-1149] - Links to MongoDB Manual in documentation should point to development version of manual instead of stable version

    New Feature

    • [CXX-778] - Allow configuration of SSL independently of the C driver
    • [CXX-859] - Implement Decimal 128 type spec
    • [CXX-927] - Support sending writeConcern for commands that write
    • [CXX-948] - Support new readConcern level "linearizable"
    • [CXX-957] - Allow a user to decide whether to build static or shared libraries
    • [CXX-971] - Support providing collation per operation
    • [CXX-976] - Allow users to set a limit on acceptable staleness
    • [CXX-978] - Add application name and driver version to the MongoDB handshake
    • [CXX-999] - Support read-only views
    • [CXX-1042] - Write mongocxx configuration guide
    • [CXX-1051] - Add new top-level find options and deprecate options::find::modifiers()
    • [CXX-1053] - Add getters to options::create_collection/options::create_view/validation_criteria classes, make setters support chaining, deprecate to_document() methods
    • [CXX-1059] - Add aggregation pipeline class builder methods for new MongoDB 3.4 stages and $geoNear / $indexStats stages
    • [CXX-1124] - Username no longer required for MONGODB-X509 auth
    • [CXX-1132] - Test that collection::find(), collection::find_one(), and collection::find_one_and_*() fail with error if collation specified and server lacks collation support
    • [CXX-1134] - Add bsoncxx generic internal error code
    • [CXX-1142] - Make minimum value of maxStalenessSeconds 90 seconds
    • [CXX-1155] - Add Windows configure/build/test instructions to cxx driver manual
    Source code(tar.gz)
    Source code(zip)
  • r3.1.0-rc0(Nov 29, 2016)

    This is the first release candidate for mongocxx 3.1.0, the MongoDB C++11 driver.

    This release provides support for new features in MongoDB 3.4.

    Please note that this version of mongocxx requires the MongoDB C driver 1.5.0.

    See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    NOTE: The mongocxx 3.1.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.1.0-rc0 since the prior 3.0.x series are as follows:

    Bug

    • [CXX-894] - Return disengaged result optionals for unack'ed write operations
    • [CXX-938] - stdx polyfills are not declared in the ABI inline namespace
    • [CXX-1001] - mongocxx::cursor.begin() increments the iterator
    • [CXX-1009] - mongocxx::pool should take options::pool, not options::ssl
    • [CXX-1039] - Update link to final collation page in 3.4 manual
    • [CXX-1047] - MSVC warning C4714, bsoncxx operator <<, view() etc. marked as __forceinline not inlined
    • [CXX-1061] - Update link to final views page in 3.4 manual
    • [CXX-1065] - read_concern::acknowledge_string should return const string_view
    • [CXX-1070] - Confusing installation instructions
    • [CXX-1093] - collection::distinct() should return error to user if collation specified and connection max wire version < 5
    • [CXX-1100] - Having more than one iterator per cursor violates mongoc lifecycle constraints
    • [CXX-1109] - Integration tests should pass against server versions 2.4 through 3.0
    • [CXX-1135] - Read preference option not applied to distinct

    New Feature

    • [CXX-778] - Allow configuration of SSL independently of the C driver
    • [CXX-859] - Implement Decimal 128 type spec
    • [CXX-927] - Support sending writeConcern for commands that write
    • [CXX-948] - Support new readConcern level "linearizable"
    • [CXX-957] - Allow a user to decide whether to build static or shared libraries
    • [CXX-971] - Support providing collation per operation
    • [CXX-976] - Allow users to set a limit on acceptable staleness
    • [CXX-978] - Add application name and driver version to the MongoDB handshake
    • [CXX-999] - Support read-only views
    • [CXX-1042] - Write mongocxx configuration guide
    • [CXX-1051] - Add new top-level find options and deprecate options::find::modifiers()
    • [CXX-1053] - Add getters to options::create_collection/options::create_view/validation_criteria classes, make setters support chaining, deprecate to_document() methods
    • [CXX-1059] - Add aggregation pipeline class builder methods for new MongoDB 3.4 stages
    • [CXX-1124] - Username no longer required for MONGODB-X509 auth
    • [CXX-1132] - Test that collection::find(), collection::find_one(), and collection::find_one_and_*() fail with error if collation specified and server lacks collation support
    • [CXX-1134] - Add bsoncxx generic internal error code
    • [CXX-1142] - Make minimum value of maxStalenessSeconds 90 seconds
    Source code(tar.gz)
    Source code(zip)
C++ Driver for MongoDB

MongoDB C++ Driver Welcome to the MongoDB C++ Driver! Branches - releases/stable versus master The default checkout branch of this repository is relea

mongodb 893 Jun 28, 2022
A high-performance MongoDB driver for C

mongo-c-driver About mongo-c-driver is a project that includes two libraries: libmongoc, a client library written in C for MongoDB. libbson, a library

mongodb 731 Jun 30, 2022
The MongoDB Database

The MongoDB Database

mongodb 22k Jun 28, 2022
Loads a signed kernel driver which allows you to map any driver to kernel mode without any traces of the signed / mapped driver.

CosMapper Loads a signed kernel driver (signed with leaked cert) which allows you to map any driver to kernel mode without any traces of the signed /

null 107 Jul 2, 2022
libsinsp, libscap, the kernel module driver, and the eBPF driver sources

falcosecurity/libs As per the OSS Libraries Contribution Plan, this repository has been chosen to be the new home for libsinsp, libscap, the kernel mo

Falco 100 Jun 30, 2022
manually map driver for a signed driver memory space

smap manually map driver for a signed driver memory space credits https://github.com/btbd/umap tested system Windows 10 Education 20H2 UEFI installati

ekknod 73 Jun 12, 2022
x64 Windows kernel driver mapper, inject unsigned driver using anycall

anymapper x64 Windows kernel driver mapper, inject unsigned driver using anycall This project is WIP. Todo Fix: Can't make API calls from IAT nor func

Kento Oki 68 Jun 22, 2022
Driver leap - Self-sustainable fork of SteamVR driver for Leap Motion controller with updated vendor libraries

Driver Leap Self-sustainable fork of SteamVR driver for Leap Motion controller with updated vendor libraries Installation (for users) Install Ultralea

null 42 Jun 17, 2022
Hygieia, a vulnerable driver traces scanner written in C++ as an x64 Windows kernel driver.

Hygieia The Greek goddess of health, her name is the source for the word "hygiene". Hygieia is a windows driver that works similarly to how pagewalkr

Deputation 67 Jun 19, 2022
SinMapper - usermode driver mapper that forcefully loads any signed kernel driver

usermode driver mapper that forcefully loads any signed kernel driver (legit cert) with a big enough section (example: .data, .rdata) to map your driver over. the main focus of this project is to prevent modern anti-cheats (BattlEye, EAC) from finding your driver and having the power to hook anything due to being inside of legit memory (signed legit driver).

null 95 Jun 19, 2022
This project aims to facilitate debugging a kernel driver in windows by adding support for a code change on the fly without reboot/unload, and more!

BSOD Survivor Tired of always telling yourself when you got a BSOD that what if I could just return to the caller function which caused the BSOD, and

Ido Westler 142 Jun 20, 2022
Lotus 1-2-3 R4D Display Driver for DOSEMU

Lotus 1-2-3 R4D Display Driver for DOSEMU2 This is a WIP display driver for Lotus 1-2-3 R4D to enable support for arbitrary text resolutions in DOSEMU

Tavis Ormandy 106 Jun 13, 2022
Simple Player-Glow & Driver Source Included

External-Apex-Cheat Install WDK Build in Release x64 Map driver using KDMapper Launch Game Run User-mode when in main menu Have Fun driver is indeed p

null 95 Jun 25, 2022
MPU-9250 sensor driver.

mpu9250 This library communicates with InvenSense MPU-9250 and MPU-9255 Inertial Measurement Units (IMUs). License Changelog Contributing guide Descri

Bolder Flight Systems 394 Jun 20, 2022
An SQLite3 driver for Elixir

Exqlite An Elixir SQLite3 library. If you are looking for the Ecto adapater, take a look at the Ecto SQLite3 library. Documentation: https://hexdocs.p

elixir-sqlite 123 Jun 30, 2022
An OpenVR Driver for VR Gloves

lucidgloves - LucidVR X Fngrs Developed by: Danwillm Lucas_VRTech What is this? This repository contains the OpenVR(SteamVR) driver for a DIY VR Hapti

null 369 Jun 27, 2022
Corsair LL Access driver abuse

CorsairLLeak Map physical addresses into userspace (RW), read/write MSRs, send/recieve data on I/O ports, and query/set bus configuration data with th

Arush Agarampur 20 May 9, 2022
Valorant cheat that abuses Logitech GHUB driver input management.

valorant-cheat Valorant cheat that uses Logitech GHUB driver input management and color detection. features Triggerbot with customizable delay (VK_SHI

null 24 May 20, 2022
ASUSTeK AsIO3 I/O driver unlock

AsIo3Unlock ASUSTeK AsIO3 I/O driver unlock Purpose This is proof-of-concept bypass of pseudo-security caller check implemented in AsIO3, "unlocking"

null 17 Jun 23, 2022
A FAT filesystem with SPI driver for SD card on Raspberry Pi Pico

no-OS-FatFS-SD-SPI-RPi-Pico Simple library for SD Cards on the Pico At the heart of this library is ChaN's FatFs - Generic FAT Filesystem Module. It a

Carl J Kugler III 88 Jun 21, 2022
OffensivePH - use old Process Hacker driver to bypass several user-mode access controls

offensiveph OffensivePH is a post-exploitation tool that utilizes an old Process Hacker driver to bypass several user-mode access controls. Usage Comp

Red Section 257 Jun 23, 2022
ads1115 full function driver

LibDriver ADS1115 English | 简体中文 ADS1115 is an ultra small package, low power, IIC bus interface, 16 bit conversion accuracy, internal voltage referen

Shifeng Li 38 May 25, 2022
Linux USB driver for the MOTU AVB series interfaces

motu-avb Linux USB driver for the MOTU AVB series interfaces Kernel parameters: samplerate: set the samplerate (its currently fixed at module load) de

null 41 Jun 17, 2022
Utility on top of the Flutter Driver API that facilitates measuring the performance of your app in an automated way created by Very Good Ventures 🦄

Very Good Performance Developed with ?? by Very Good Ventures ?? Utility on top of the Flutter Driver API that facilitates measuring the performance o

Very Good Open Source 72 Jun 24, 2022
OceanBase Client for C. A driver to connect applications developed in C language to OceanBase Database.

Oceanbase Client for C OceanBase Client for C is a driver used to connect applications developed in C to OceanBase Database Server. Compatibility Serv

OceanBase 20 Jun 23, 2022
A kernel level driver for Windows built to configure the Blue Screen Of Death

BSODConfigure A kernel level driver for Windows built to configure the Blue Screen Of Death. Go see the writeup at https://www.phasetw0.com/configurin

phasetw0 12 Dec 23, 2021
Driver for the TI TMP102 I2C temperature sensor. For use with TI TM4C123X MCUs.

TI TMP102 Driver Simple driver for the TI TMP102 I2C temperature sensor. For use with TI TM4C123X MCUs and TI's TivaWare™ Peripheral Driver Library. D

Dan Maher 4 Jun 27, 2021
bmp180 full function driver

LibDriver BMP180 English | 简体中文 The BMP180 is the function compatible successor of the BMP085, a new generation of high precision digital pressure sen

Shifeng Li 57 May 25, 2022
hx711 full function driver

LibDriver HX711 English | 简体中文 HX711 is a 24 bit A / D converter chip specially designed for high precision electronic scales, which adopts the patent

Shifeng Li 62 May 25, 2022