Compatibility
MongoDB Compatibility
The following compatibility table specifies the recommended version or versions of the C driver for use with a specific version of MongoDB.
The first column lists the driver version.
Important
MongoDB ensures compatibility between the MongoDB Server and the drivers for three years after the server version's end of life (EOL) date. To learn more about the MongoDB release and EOL dates, see MongoDB Software Lifecycle Schedules.
Compatibility Table Legend
Icon | Explanation |
---|---|
✓ | All features are supported. |
⊛ | The Driver version will work with the MongoDB version, but not all new MongoDB features are supported. |
No mark | The Driver version is not tested with the MongoDB version. |
C Driver Version | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
---|---|---|---|---|---|---|---|---|
1.28 to 1.29 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
1.24 to 1.27 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
1.22 to 1.23 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
1.19 1.21 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
1.18 | ⊛ | ⊛ | ⊛ | ✓ [1] | ✓ | ✓ | ✓ | ✓ |
1.17 | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ |
1.15 to 1.16 | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ |
1.11 to 1.14 | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ |
1.9 to 1.10 | ✓ |
[1] | The 1.18 driver does not support snapshot reads on secondaries. For more information, see the MongoDB Server version 5.0 release notes. |
The driver does not support older versions of MongoDB.
Language Compatibility
The following compatibility table specifies the recommended version of the MongoDB C Driver for use with a specific version of C.
The first column lists the driver version.
C Driver Version | C17/C18 | C11 | C99 | C89 |
---|---|---|---|---|
1.24 to 1.29 | ✓ | ✓ | ✓ | |
<= 1.23 | ✓ | ✓ | ✓ |
For more information on how to read the compatibility tables, see our guide on MongoDB Compatibility Tables.
Platform Compatibility
This section includes version compatibility information about platforms and toolchains that are supported by the C driver.
Operating Systems
The following operating systems are continually tested with the C driver:
Operating System | Notes |
---|---|
Debian | Versions 9.2, 10.0, and 11.0 |
RHEL | Versions 7.0, 7.1, 8.1, 8.2, and 8.3. RHEL derivatives (for example, CentOS, Rocky Linux, or AlmaLinux) of the same release version are supported. Fedora is also supported, but not continually tested. |
Ubuntu | Versions 16.04, 18.04, and 20.04. Subsequent minor releases are also supported. Ubuntu 22.04 and newer is not yet tested. Ubuntu derivatives based on supported Ubuntu versions are also supported. |
Arch Linux | |
macOS | Version 11.0 |
Windows Server 2008 and Windows Server 2016 | Windows variants of the same generation are supported |
Compilers
The following compilers are continually tested with the C driver:
Compiler | Notes |
---|---|
Clang | Versions 3.7, 3.8, and 6.0. Newer versions are also supported, as well as the corresponding Apple Clang releases. |
GNU Compiler Collection (GCC) | Versions 4.8, 5.4, 6.3, 7.5, 8.2, 8.3, 9.4, and 10.2. The MinGW-w64 GCC is also tested and supported. |
Microsoft Visual C++ (MSVC) | Tested with MSVC 14.x (Visual Studio 2015) and 15.x (Visual Studio 2017). Newer MSVC versions are supported but not yet tested. |
Architectures
The following CPU architectures are continually tested with the C driver:
Architecture | Notes |
---|---|
x86 (32-bit) | Tested only on Windows |
x86_64 (64-bit x86) | Tested on Linux, macOS, and Windows |
ARM / aarch64 | Tested on macOS and Linux |
Power8 (ppc64le) | Tested only on Linux |
zSeries (s390x) | Tested only on Linux |
Additional Platforms
Other platforms and toolchains are not tested, but we expect similar versions of the preceding platforms to work. If you encounter a platform or toolchain that you expect to work and find that it does not, please open an issue describing the problem, or open a GitHub Pull Request to fix it.
Important
Simple pull requests to fix unsupported platforms are welcome, but will be considered on a case-by-case basis. The acceptance of a pull request to fix the libraries on an unsupported platform does not imply full support of that platform.