cpp_client_telemetry/docs/List-of-OSS-Components.md

3.5 KiB

Open Source components

These are the Open Source components used by Microsoft 1DS / C++ Client Telemetry SDK.

ZLib

ZLIB DATA COMPRESSION LIBRARY.

SDK maintains its own snapshot of the mainline ZLib with some Intel architecture performance optimizations here. It is the responsibility of product teams to ensure that a snapshot of zlib they use meets their product security and licensing requirements.

SQLite

SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.

SDK maintains its own snapshot of the mainline SQLite, which is used for Windows builds here. Other platforms use platform-provided SQLite. It is the responsibility of product teams to ensure that a snapshot of zlib they use meets their product security and licensing requirements.

nlohmann/json

JSON for Modern C++.

SDK maintains its own snapshot of the mainline nlohmann/json header-only library here.

libcurl

libcurl - the multiprotocol file transfer library.

SDK uses libcurl provided as part of OS package on Linux, Mac, iOS; and as part of OS build tree on Android.

Google Test

Google's C++ test framework. Used only for tests and not included in products.

Google Benchmark

Google's C++ benchmarking framework. Used only for tests and not included in products.

Tony Million Reachability Framework

Reachability is a drop-in replacement for Apple's Reachability class. It is ARC-compatible, and it uses the new GCD methods to notify of network interface changes. SDK maintains its own snapshot of the mainline tonymillion/Reachability here. This code is not used nor included in the build of non-Apple OS. Please note if customer product is adding dependency to this component, they should ensure it meets their product security and licensing requirements.

SHA-1 by Steve Reid

Classic implementation of SHA-1 (Public Domain). SDK maintains its own snapshot of it here. Note that this component is not included or compiled into any of the shipable bits of SDK. It is included for internal developer debug builds only. For example, SHA-1 may be used to calculate destination ETW Provider GUID based on ETW Provider name on Windows OS in developer trace tooling / instrumentation. Please note if customer product is adding dependency to this component, they should ensure it meets their product security and licensing requirements.

Other components and systems

Other Open Source components that may be indirectly included by Open Source build tooling, instrumentation and other SDKs (e.g. Apple SDK or Android SDK) used for a corresponding platform:

  • CMake
  • Gradle
  • Android NDK
  • OpenSSL

SDK does not compile these components from source. It uses the mainstream prebuilt packages as provided by corresponding development platform SDKs.

Please refer to original development platform SDKs for the original source code packages:

Please reach out to 1ds.sdk.cpp DL if you identified OSS component used by SDK that has not been listed. It will be added to this list.