Skip to content

Latest commit

 

History

History
187 lines (169 loc) · 17.8 KB

File metadata and controls

187 lines (169 loc) · 17.8 KB

MongoDB Third Party Dependencies

MongoDB depends on third party libraries to implement some functionality. This document describes which libraries are depended upon, and how. It is maintained by and for humans, and so while it is a best effort attempt to describe the server's dependencies, it is subject to change as libraries are added or removed.

Server Vendored Libraries

This is the list of third party libraries vendored into the server codebase, and the upstream source where updates may be obtained. These sources are periodically consulted, and the existence of new versions is reflected in this list. A ticket is filed in Jira if a determination is made to upgrade a vendored library.

Whenever a vendored library is included in released binary artifacts, is not authored by MongoDB, and has a license which requires reproduction, a notice will be included in THIRD-PARTY-NOTICES.

Name License Vendored Version Emits persisted data Distributed in Release Binaries
Abseil Common Libraries (C++) Apache-2.0 20250512.1
Asio C++ Library BSL-1.0 1.34.2
AWS SDK for C++ Apache-2.0 1.11.471
benchmark Apache-2.0 1.5.2
Boost C++ Libraries BSL-1.0 1.88.0
bzip2 bzip2-1.0.6 1.0.8
c-ares MIT 1.27.0
cpptrace MIT 1.0.3
CRoaring Apache-2.0 OR MIT 3.0.1
Cyrus SASL BSD-Attribution-HPND-disclaimer 2.1.28
fmt MIT 11.2.0
folly Apache-2.0 2025.04.21.00
fuzztest BSD-3-Clause, Apache-2.0, HPND 2025-07-28
googletest BSD-3-Clause 1.17.0
gperftools BSD-3-Clause 2.9.1
gRPC (C++) Apache-2.0 1.74.1
ICU4C - International Components for Unicode C/C++ Unicode-3.0 57.1
immer BSL-1.0 0.9.1
Intel® Decimal Floating-Point Math Library BSD-3-Clause 2.0.1
JSON Schema Store Apache-2.0 6847cfc3a17a04a7664474212db50c627e1e3408
json-c MIT 0.17
JSON-Schema-Test-Suite MIT 728066f9c5c258ba3b1804a22a5b998f2ec77ec0
libarchive A mix of BSD-2-Clause and others 3.8.4
libdwarf LGPL-2.1-or-later, BSD-3-Clause, Public Domain 2.1.0
libkmip Apache-2.0 OR BSD-3-Clause 66119416e2c89ab182343900418cecafe02b6e8d
LibTomCrypt Unlicense 1.18.2
libunwind MIT 1.8.1
linenoise BSD-2-Clause 6cdc775807e57b2c3fd64bd207814f8ee1fe35f3
Mozilla Firefox ESR MPL-2.0 140.11.0esr
MurmurHash3 Public Domain a6bd3ce7be8ad147ea820a7cf6229a975c0c96bb
nlohmann/json MIT 3.11.3
node ISC 22.1.0
opentelemetry-cpp Apache-2.0 1.24.0
opentelemetry-proto Apache-2.0 1.3.2
PCRE2 - Perl-Compatible Regular Expressions BSD-3-Clause WITH PCRE2-exception 10.40
Prometheus Client Library for Modern C++ MIT 1.2.2
Protobuf BSD-3-Clause 6.31.1
pypi/ocspbuilder MIT 0.10.2
pypi/ocspresponder Apache-2.0 0.5.0
re2 BSD-3-Clause 2025-08-05
rnp BSD-2-Clause, Apache-2.0, MIT 0.18.1
S2 Geometry Library Apache-2.0 a25c502bda9d7e0274b9e2b7825fbddf13cc0306
s2n-tls TLS library Apache-2.0 1.7.3
SafeInt MIT 3.0.28a
siphash CC0-1.0, MIT, Apache 2.0 with LLVM exception 32d067603b93b47828700880649198e0bfbbcffa
snappy BSD-3-Clause 1.1.10
Snowball Stemming Algorithms (libstemmer) BSD-3-Clause 1.0.0
tcmalloc Apache-2.0 f3b20f9a07e175c5d897df7b49d9830d4efa6110
timelib MIT 2022.13
Unicode Character Database Unicode-DFS-2016 8.0.0
valgrind.h BSD-4-Clause 093bef43d69236287ccc748591c9560a71181b0a
yaml-cpp MIT 0.6.3
zlib Zlib 1.3.2
Zstandard (zstd) BSD-3-Clause OR GPL-2.0-only 1.5.5

WiredTiger Vendored Test Libraries

The following libraries are transitively included by WiredTiger, and are used by that component for testing. They don't appear in released binary artifacts.

Name
pkg:pypi/concurrencytest@0.1.2
pkg:pypi/discover@0.4.0
pkg:pypi/extras@0.0.3
pkg:pypi/iso8601@2.1.0
pkg:pypi/python-subunit@1.4.4
pkg:pypi/testscenarios@0.4
pkg:pypi/testtools@2.7.1

Dynamically Linked Libraries

Percona Server for MongoDB needs to load libraries provided and managed by the runtime environment. These libraries are not vendored into the Percona Server for MongoDB source directory, and are not compiled into release artifacts. Because they are provided by the runtime environment, the precise versions of these libraries cannot be known in advance. Further, these libraries may themselves load other libraries. The full set of transitively linked libraries will depend on the runtime environment, and cannot be outlined here.

Percona Server for MongoDB directly links the following dynamic libraries:

Name Typical Linked Library Filename(s)
GNU C Library libc.so.6, libm.so.6, libresolv.so.2, etc.
GCC support library libgcc_s.so.1
libcurl libcurl.so.4
Cyrus SASL libsasl2.so.2
Kerberos 5 GSS-API libgssapi_krb5.so.2
OpenLDAP liblber.so.2, libldap.so.2
OpenSSL libcrypto.so.3, libssl.so.3

Note. Version numbers in library filenames (e.g. 6 in libc.so.6) are just examples and can differ from platform to platform.

Notes:

  1. ^ The majority of Valgrind is licensed under the GPL, with the exception of a single header file which is licensed under a BSD license. This BSD licensed header is the only file from Valgrind which is vendored and consumed by MongoDB.

  2. ^ WiredTiger is maintained by MongoDB in a separate repository. As a part of our development process, we periodically ingest the latest snapshot of that repository.