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.
6a25abb7575e2e207ba5a81d4080fa7ab9d68c1f
ZeroTier SDK
Embed ZeroTier directly into your app or service. Connect everything without worrying about how it's actually connected.
Example
string str = "welcome to the machine";
zts_start("./zt");
while(!zts_service_running())
sleep(1);
zts_join_network(nwid);
int err, sockfd;
while(!zts_has_address(nwid))
sleep(1);
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 connecting to remote host (%d)\n", err);
}
int wrote = zts_write(fd, str.c_str(), str.length());
zts_close(fd);
Bindings also exist for many popular languages.
Build Targets
Static Library
make static_lib: Will output tobuild/
Tests
make tests: Will output tobuild/tests/
Then run the comprehensive test suite with whatever configuration you need. For instance:
To run a single-test IPv4 server on port 8787:
- Host 1:
./build/test/comprehensive c7cd7c9e1b0f52a2 simple 4 server 8787 - Host 2:
./build/test/comprehensive c7cd7c9e1b0f52a2 simple 4 client 10.9.9.40 8787
Using Language Bindings
SDK_LANG_JAVA=1
SDK_LANG_CSHARP=1
SDK_LANG_PYTHON=1
SDK_LANG_GO=1
Description
Languages
C++
58%
C
21.6%
C#
5.8%
Java
5%
Rust
3.3%
Other
6.3%