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.

ZeroTier SDK

irc

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 to build/

Tests

  • make tests: Will output to build/tests/

Then run the unit test suite with whatever configuration you need. For instance:

To run a single-test IPv4 client/server test:

  • Host 1: ./build/test/unit zt1 c7cd7c9e1b0f52a2 simple 4 server 8787
  • Host 2: ./build/test/unit zt2 c7cd7c9e1b0f52a2 simple 4 client 10.9.9.40 8787

To run a multi-message IPv4 client/server test:

  • Host 1: ./build/test/unit zt2 c7cd7c9e1b0f52a2 simple 4 server 8787 n_bytes 100 50'

  • Host 2: ./build/test/unit zt2 c7cd7c9e1b0f52a2 simple 4 client 10.9.9.40 8787 n_bytes 100 50'

  • For more unit test examples, see the testing page

Using Language Bindings

SDK_LANG_JAVA=1 SDK_LANG_CSHARP=1 SDK_LANG_PYTHON=1 SDK_LANG_GO=1

Description
No description provided
Readme 17 MiB
Languages
C++ 58%
C 21.6%
C# 5.8%
Java 5%
Rust 3.3%
Other 6.3%