Skip to content

Latest commit

 

History

History
181 lines (163 loc) · 18.7 KB

README.third_party.md

File metadata and controls

181 lines (163 loc) · 18.7 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 Apache-2.0 20230802.1
arximboldi/immer BSL-1.0 Unknown
Asio C++ Library BSL-1.0 1.12.2
benchmark Apache-2.0 v1.5.2
Boost C++ Libraries - boost BSL-1.0 1.79.0
c-ares MIT 1.19.1
concurrencytest GPL-3.0-or-later 0.1.2 unknown
Cyrus SASL BSD-Attribution-HPND-disclaimer 2.1.28 unknown
dcleblanc/SafeInt MIT 3.0.26
derickr/timelib MIT 2022.10
discover BSD-3-Clause 0.4.0 unknown
fmtlib/fmt MIT 7.1.3
google-re2 BSD-3-Clause 2023-11-01
google-snappy BSD-3-Clause 1.1.10
google/s2geometry Apache-2.0 Unknown
gperftools BSD-3-Clause 2.9.1
grpc Apache-2.0 1.59.2
ICU for C/C++ (ICU4C) BSD-3-Clause, MIT v2 with Ad Clause License, Public Domain, BSD-2-Clause 57.1
Intel Decimal Floating-Point Math Library BSD-3-Clause v2.0 U1
jbeder/yaml-cpp MIT 0.6.3
JSON-Schema-Test-Suite Unknown License Unknown
libmongocrypt Apache-2.0 1.12.0
librdkafka - the Apache Kafka C/C++ client library BSD-3-Clause, Xmlproc License, ISC, MIT, Public Domain, Zlib, BSD-2-Clause, Andreas Stolcke License 2.0.2
LibTomCrypt WTFPL, Public Domain 1.18.2
libunwind/libunwind MIT v1.6.2
linenoise BSD-2-Clause Unknown
MongoDB C Driver Apache-2.0 1.27.6
Mozilla Firefox MPL-2.0 115.7.0esr unknown
nlohmann.json.decomposed MIT 3.10.5 unknown
node ISC 22.1.0 unknown
ocspbuilder MIT 0.10.2
ocspresponder Apache-2.0 0.5.0
PCRE2 BSD-3-Clause, Public Domain 10.40
Protobuf BSD-3-Clause v4.25.0
pyiso8601 MIT 2.1.0 unknown
RoaringBitmap/CRoaring Unknown License v3.0.1
SchemaStore/schemastore Apache-2.0 Unknown
SCons - a Software Construction tool MIT 3.1.2
smhasher Unknown License Unknown unknown
Snowball Stemming Algorithms BSD-3-Clause Unknown unknown
subunit BSD-3-Clause, Apache-2.0 1.4.4 unknown
tcmalloc Apache-2.0 20230227-snapshot-093ba93c
testing-cabal/extras MIT 0.0.3 unknown
testscenarios BSD-3-Clause, Apache-2.0 0.4 unknown
testtools MIT 2.7.1 unknown
unicode-data Unicode-DFS-2016 8.0
valgrind GPL-2.0-or-later Unknown
zlib Zlib v1.3
zstd BSD-3-Clause, GPL-2.0-or-later 1.5.5

WiredTiger Vendored Test Libraries

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

Name
concurrencytest
discover
nlohmann.json.decomposed
pyiso8601
subunit
testing-cabal/extras
testscenarios
testtools

Dynamically Linked Libraries

Sometimes MongoDB needs to load libraries provided and managed by the runtime environment. These libraries are not vendored into the 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. On Windows and Mac OS, other libraries and components provided by the Operating System may be loaded.

For Windows Enterprise, we may ship precompiled DLLs containing some of these libraries. Releases prepared in this fashion will include a copy of these libraries' license in a file named THIRD-PARTY-NOTICES.windows.

Name Enterprise Only Has Windows DLLs
Cyrus SASL Yes Yes
libldap Yes No
net-snmp Yes Yes
OpenSSL No Yes[3]
libcurl No No

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.

  3. ^ OpenSSL is only shipped as a dependency of the MongoDB tools written in Go. The MongoDB shell and server binaries use Windows' cryptography APIs.