You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Joseph Henry 48367be640 Added prototype ztproxy test 9 years ago
artwork fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
attic/old_tests moved old tests to attic, updated selftest and host config files 9 years ago
examples Added examples/apple 9 years ago
ext updated picoTCP to 1.4.0, lowered build optimization levels to -O2, improved selftest 9 years ago
include Build fixes for FreeBSD 9 years ago
src fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
test Added prototype ztproxy test 9 years ago
zto changed SO_LINGER value, added TODOs 9 years ago
.gitignore updated .gitignore 9 years ago
Makefile fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
README.md Added RELEASE-NOTES, updated README 9 years ago
RELEASE-NOTES.md Format fixes for RELEASE-NOTES.md 9 years ago
TESTING.md fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
check.sh dynamic loading of network stack no longer needed 9 years ago
make-bsd.mk fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
make-linux.mk updated TESTING.md 9 years ago
make-mac.mk fixed connect/accept behaviour, added to selftest, renamed BSD makefile 9 years ago
objects.mk dynamic loading of network stack no longer needed 9 years ago

README.md

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.


irc

Pre-Built Binaries 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.


All build targets will output to build/.

Static Library

  • make static_lib SDK_IPV4=1

iOS App Framework

  • make ios_app_framework SDK_IPV4=1

macOS App Framework

  • make macos_app_framework SDK_IPV4=1

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

Tests