Skip to content

Commit 3741a8f

Browse files
authored
Document OSS dependencies and their license (#844)
1 parent 0dbd620 commit 3741a8f

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ of the current project.
3737
In general, the code shipped from this repository should build on all platforms
3838
having C++ compiler with [supported C++ standards](#supported-c-versions).
3939

40+
## Dependencies
41+
42+
Please refer to [Dependencies.md](docs/dependencies.md) for OSS Dependencies and license requirements.
43+
4044
## Installation
4145

4246
Please refer to [INSTALL.md](./INSTALL.md).

docs/dependencies.md

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)