mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-08-02 23:12:51 +02:00
23 lines
751 B
Markdown
23 lines
751 B
Markdown
# Requirements
|
|
|
|
* The API must have zero dependencies and be header-only.
|
|
|
|
Pros: allows you to drop it into a source tree (i.e. vendor it) without changing
|
|
the build or adding a dependency.
|
|
|
|
* The SDK should have minimal dependencies.
|
|
|
|
* Exporters can bring in transport dependencies, e.g. Stackdriver exporter
|
|
depends on gRPC.
|
|
|
|
* Support both static linking and dynamic loading.
|
|
|
|
Dynamic loading is required because some vendors want to drop in their own
|
|
implementation of the SDK. It also allows low-dependency builds.
|
|
|
|
This also requires a stable C++ ABI. There is quite a bit of interest in this.
|
|
|
|
This means STL types can't be used in the interface.
|
|
|
|
* OpenTelemetry should not _require_ a dedicated thread for background work and
|
|
exporters.
|