mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-08-02 23:12:51 +02:00
101 lines
4.1 KiB
Markdown
101 lines
4.1 KiB
Markdown
# Dependencies and Licenses
|
|
|
|
There are
|
|
|
|
- External dependencies as linkable libraries or externally installed headers, and
|
|
- Internal dependencies as the part of code from external libraries
|
|
backported/copied in main repo.
|
|
|
|
Both these dependencies are listed here:
|
|
|
|
## Internal dependencies
|
|
|
|
- [nostd::variant](/api/include/opentelemetry/nostd/internal/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`
|
|
- [TraceLoggingDynamic](/exporters/etw/include/opentelemetry/exporters/etw/TraceLoggingDynamic.h):
|
|
Dynamic TraceLogging Provider API for C++ used by ETW exporter. License: `MIT License`
|
|
|
|
## External dependencies
|
|
|
|
- [API](/api)
|
|
&
|
|
[SDK](/sdk):
|
|
- 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 cmake option `WITH_STL` is enabled
|
|
or macro `OPENTELEMETRY_STL_VERSION` is defined.
|
|
License: `GNU General Public License`
|
|
- For C++14/17 compilers, fallback to gsl::span if [GSL C++
|
|
library](https://github.com/microsoft/GSL) is installed. License: `MIT
|
|
License`
|
|
- libc++ 14.0.0 do not support construct std::span from a range or container
|
|
.We don't use the std::span in this situation.Users can also define
|
|
`OPENTELEMETRY_OPTION_USE_STD_SPAN=0` to indicate nostd:span will always
|
|
not be a alias for std::span.
|
|
|
|
- [OTLP/HTTP+JSON](/exporters/otlp)
|
|
exporter:
|
|
- [protobuf](https://github.com/protocolbuffers/protobuf): Library to
|
|
serialize structured data.
|
|
- OTLP messages are constructed as protobuf payloads.
|
|
- `protoc` compiler is used to generate C++ stubs for proto files provided
|
|
by `opentelemetry-proto`.
|
|
- `libprotobuf` library is used for generating serialized trace/metrics/log
|
|
data to be sent to opentelemetry collector.
|
|
- 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.
|
|
- [libcurl](https://curl.se/libcurl/) : the multiprotocol file transfer
|
|
library.
|
|
- Export connects with opentelemetry collector over HTTP protocol using
|
|
libcurl library
|
|
- License: Inspired by `MIT/X` but not same.
|
|
<https://curl.se/docs/copyright.html>
|
|
- [nlohmann/json](https://github.com/nlohmann/json): JSON for Modern C++.
|
|
- protobuf serialized otlp messages are encoded in JSON format using this
|
|
library.
|
|
- License: `MIT License`
|
|
- [zlib](https://www.zlib.net/): A Massively Spiffy Yet Delicately
|
|
Unobtrusive Compression Library.
|
|
- The `http_client` utilizes zlib to compress the message body and send
|
|
it in gzip format.
|
|
- License: The library is licensed
|
|
[here](https://www.zlib.net/zlib_license.html)
|
|
|
|
- [OTLP/gRPC](/exporters/otlp)
|
|
exporter:
|
|
- `protobuf` OTLP messages are constructed as protobuf payloads.
|
|
- [gRPC](https://github.com/grpc/grpc): An RPC library and framework
|
|
- Exporter communicates with OTLP collector using gRPC transport mechanism.
|
|
- License: `Apache License 2.0`
|
|
|
|
- [Zipkin](/exporters/zipkin)
|
|
exporter:
|
|
- `libcurl` for connecting with Zipkin server over HTTP protocol.
|
|
- `nlohmann/json` for encoding Zipkin messages.
|
|
|
|
- [ETW](/exporters/etw)
|
|
exporter:
|
|
- `nlohmann/json` for generating MessagePack serialization for message to be
|
|
transmitted to ETW.
|
|
|
|
- [Prometheus](/exporters/prometheus)
|
|
exporter:
|
|
- [`prometheus-cpp`](https://github.com/jupp0r/prometheus-cpp) Prometheus
|
|
Client Library for Modern C++
|
|
- License: `MIT License`
|
|
|
|
- [ElasticSearch](/exporters/elasticsearch)
|
|
exporter:
|
|
- `libcurl` for connecting with Elasticsearch server over HTTP protocol.
|
|
- `nlohmann/json` for encoding Elastic Search messages.
|
|
|
|
- [Opentracing](/opentracing-shim)
|
|
shim:
|
|
- [`opentracing-cpp`](https://github.com/opentracing/opentracing-cpp)
|
|
OpenTracing API for C++
|
|
- A bridge layer implementing the OpenTracing API using the OpenTelemetry API
|
|
- License: `Apache License 2.0`
|