|
| 1 | +# Dependencies and Licenses |
| 2 | + |
| 3 | +There are |
| 4 | + |
| 5 | +- External dependencies as linkable libraries or externally installed headers, and |
| 6 | +- Internal dependencies as the part of code from external libraries backported/copied in main repo. |
| 7 | + |
| 8 | +Both these dependencies are listed here: |
| 9 | + |
| 10 | +## Internal dependencies |
| 11 | + |
| 12 | +- [nostd::variant](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/api/include/opentelemetry/nostd/absl/types/variant.h): This is backported from [Abseil C++ libraries](https://github.com/abseil/abseil-cpp) and used as default variant implementation. License: `Apache License 2.0` |
| 13 | +- [nostd::span](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/api/include/opentelemetry/nostd/span.h): This is backported from libstdc++-v3 and used as default span implementation. License: `GNU General Public License` |
| 14 | +- [TraceLoggingDynamic](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/exporters/etw/include/opentelemetry/exporters/etw/TraceLoggingDynamic.h): Dynamic TraceLogging Provider API for C++ used by ETW exporter. License: `MIT License` |
| 15 | + |
| 16 | +## External dependencies |
| 17 | + |
| 18 | +- [API](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/api) & [SDK](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/sdk): |
| 19 | + - Uses Standard C++ library for latest features (std::string_view, std::variant, std::span, std::shared_ptr, std::unique_ptr) with C++14/17/20 compiler if `WITH_STL` cmake option is enabled or `HAVE_CPP_STDLIB` macro is defined. License: `GNU General Public License` |
| 20 | + - For C++11/14/17 compilers, fallback to gsl::span if [GSL C++ library](https://github.com/microsoft/GSL) is installed. License: `MIT License` |
| 21 | + - Uses Abseil C++ Library for `absl::variant` as default `nostd::variant` if `WITH_ABSEIL` cmake option is enabled. License: `Apache License 2.0` |
| 22 | + |
| 23 | +- [OTLP/HTTP+JSON](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: |
| 24 | + - [protobuf](https://github.com/protocolbuffers/protobuf): Library to serialize structured data. |
| 25 | + - OTLP messages are constructed as protobuf payloads. |
| 26 | + - `protoc` compiler is used to generate C++ stubs for proto files provided by `opentelemetry-proto`. |
| 27 | + - `libprotobuf` library is used for generating serialised trace/metrics/log data to be sent to opentelemetry collector. |
| 28 | + - License: The library is licensed [here](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE). The code generated by protoc compiler is owned by the owner of `.proto` file. |
| 29 | + - [libcurl](https://curl.se/libcurl/) : the multiprotocol file transfer library. |
| 30 | + - Export connects with opentelemetry collector over HTTP protocol using libcurl library |
| 31 | + - License: Inspired by `MIT/X` but not same. <https://curl.se/docs/copyright.html> |
| 32 | + - [nlohmann/json](https://github.com/nlohmann/json): JSON for Modern C++. |
| 33 | + - protobuf serialized otlp messages are encoded in JSON format using this library. |
| 34 | + - License: `MIT License` |
| 35 | + |
| 36 | +- [OTLP/gRPC](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: |
| 37 | + - `protobuf` OTLP messages are constructed as protobuf payloads. |
| 38 | + - [gRPC](https://github.com/grpc/grpc): An RPC library and framework |
| 39 | + - Exporter communicates with OTLP collector using gRPC transport mechanism. |
| 40 | + - License: `Apache License 2.0` |
| 41 | + |
| 42 | +- [Zipkin](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/zipkin) exporter: |
| 43 | + - `libcurl` for connecting with Zipkin server over HTTP protocol. |
| 44 | + - `nlohmann/json` for encoding Zipkin messages. |
| 45 | + |
| 46 | +- [Jaeger](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/jaeger) exporter: |
| 47 | + - [Thrift](https://github.com/apache/thrift) - Serialization and RPC framework. |
| 48 | + - `thrift` compiler to generate C++ stubs for IDL data model for Jaeger. |
| 49 | + - `libthrift` library to generate serialised trace/metrics/log data to be sent to remote Jaeger service. |
| 50 | + - License: `Apache License 2.0` |
| 51 | + |
| 52 | +- [ETW](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/etw) exporter: |
| 53 | + - `nlohmann/json` for generating MessagePack serialization for message to be transmitted to ETW. |
| 54 | + |
| 55 | +- [Prometheus](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/prometheus) exporter: |
| 56 | + - [`prometheus-cpp`](https://github.com/jupp0r/prometheus-cpp) Prometheus Client Library for Modern C++ |
| 57 | + - License: `MIT License` |
| 58 | + |
| 59 | +- [ElasticSearch](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/elasticsearch) exporter: |
| 60 | + - `libcurl` for connecting with Elasticsearch server over HTTP protocol. |
| 61 | + - `nlohmann/json` for encoding Elastic Search messages. |
| 62 | + |
| 63 | +- [Zpages](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/ext/src/zpages): |
| 64 | + - None |
0 commit comments