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.
|
|
9 years ago | |
|---|---|---|
| examples | 9 years ago | |
| ext | 9 years ago | |
| include | 9 years ago | |
| src | 9 years ago | |
| test | 9 years ago | |
| zto | 9 years ago | |
| .gitignore | 10 years ago | |
| Makefile | 9 years ago | |
| README.md | 9 years ago | |
| check.sh | 9 years ago | |
| make-linux.mk | 9 years ago | |
| make-mac.mk | 9 years ago | |
| objects.mk | 9 years ago | |
README.md
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 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