2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-05-05 16:46:07 -07:00
2017-04-21 14:56:42 -07:00
2017-05-05 16:46:07 -07:00

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_running())
	sleep(1);
zts_join("e5cd7a7b1c0fa971");
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 SDK_IPV4=1: 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/selftest zt1 c7cd7c9e1b0f52a2 simple 4 server 8787
  • Host 2: ./build/selftest 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

IP version flags

SDK_IPV4=1 SDK_IPV6=1

Using Language Bindings

SDK_LANG_JNI=1 - Enable JNI bindings for Java (produces a shared library) SDK_LANG_CSHARP=1 SDK_LANG_PYTHON=1 SDK_LANG_GO=1

Debugging flags

SDK_DEBUG=1 - Enable SDK library debugging ZT_DEBUG=1 - Enable core ZeroTier service debugging

S
Description
No description provided
Readme
44 MiB
Languages
C++ 58%
C 21.6%
C# 5.8%
Java 5.1%
Rust 3.3%
Other 6.2%