This repository has been archived on 2025-09-14 . You can view files and clone it, but cannot push or open issues or pull requests.
2a1840f2126cf6e3b7a472ec4ea79b3dbb10c598
ZeroTier SDK: Embed ZeroTier directly into your app
ZeroTier makes it easy to securely connect devices, servers, cloud VMs, containers, and apps everywhere and manage them at scale. Now, with the SDK you can bake this ability directly into your application or service using your preferred language. We provide a BSD socket-like API to make the integration simple.
Pre-Built Binaries/Packages Here: zerotier.com/download.shtml.
Example
char *str = "welcome to the machine";
char *nwid = "c7cd7c9e1b0f52a2";
zts_simple_start("./zt", nwid);
if((fd = zts_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("error creating ZeroTier socket");
}
if((err = zts_connect(fd, (const struct sockaddr *)addr, sizeof(addr))) < 0) {
printf("error (%d) connecting to remote host\n", err);
}
int wrote = zts_write(fd, str, strlen(str));
zts_close(fd);
Bindings also exist for many popular languages and platforms.
Static Library
make static_lib SDK_IPV4=1: Will output tobuild/
iOS App Framework
make ios_app_framework SDK_IPV4=1: Will output tobuild/
macOS App Framework
make macos_app_framework SDK_IPV4=1: Will output tobuild/
IP version flags
SDK_IPV4=1SDK_IPV6=1
Using Language Bindings
SDK_LANG_JNI=1: Enable JNI bindings for Java (produces a shared library)SDK_LANG_CSHARP=1SDK_LANG_PYTHON=1SDK_LANG_GO=1
Debugging flags
SDK_DEBUG=1- Enable SDK library debuggingZT_DEBUG=1- Enable core ZeroTier service debugging
Tests
- See TESTING.md
Description
Languages
C++
58%
C
21.6%
C#
5.8%
Java
5%
Rust
3.3%
Other
6.3%