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.
Files
zhangyang-libzt/README.md

55 lines
1.9 KiB
Markdown
Raw Normal View History

2017-06-14 16:58:48 -07:00
# libzt
*Embed ZeroTier directly into your app*
***
2017-05-05 18:51:04 -07:00
<a href="https://www.zerotier.com?pk_campaign=github_libzt"><img src="https://github.com/zerotier/ZeroTierOne/raw/master/artwork/AppIcon_87x87.png" align="left" hspace="20" vspace="6"></a>
2017-05-05 18:51:04 -07:00
2017-06-14 17:53:32 -07:00
**ZeroTier** makes it easy to securely connect devices, servers, cloud VMs, containers, and apps everywhere and manage them at scale. Now, with **libzt** you can bake this ability directly into your app or service using your preferred language or framework. We provide a BSD socket-like API to make the integration simple and there's no longer any need for system-wide virtual interfaces. This connection is exclusive to your app.
2017-05-05 19:12:46 -07:00
2017-05-05 19:15:30 -07:00
<hr>
2017-05-05 19:05:36 -07:00
2017-05-05 19:15:30 -07:00
[![irc](https://img.shields.io/badge/IRC-%23zerotier%20on%20freenode-orange.svg)](https://webchat.freenode.net/?channels=zerotier)
Pre-Built Binaries Here: [zerotier.com/download.shtml](https://zerotier.com/download.shtml?pk_campaign=github_libzt).
2017-05-30 12:35:18 -07:00
2017-06-14 17:09:18 -07:00
***
2017-05-30 13:50:27 -07:00
### Example
```
#include "libzt.h"
2017-06-14 17:53:32 -07:00
char *str = "welcome to the machine"; // test msg
char *nwid = "c7cd7c9e1b0f52a2"; // network to join
char *path = "zt1"; // path where this node's keys and configs will be stored
char *ip = "10.8.8.42"; // host on ZeroTier network
int port = 8080; // resource's port
2017-06-14 17:53:32 -07:00
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(ip);
addr.sin_port = hton(port);
2017-05-30 13:17:39 -07:00
2017-06-14 17:38:06 -07:00
zts_simple_start(path, nwid);
int fd = zts_socket(AF_INET, SOCK_STREAM, 0);
2017-06-14 17:15:51 -07:00
zts_connect(fd, (const struct sockaddr *)addr, sizeof(addr));
zts_write(fd, str, strlen(str));
2017-04-21 14:56:42 -07:00
zts_close(fd);
```
2017-06-14 17:53:32 -07:00
Bindings for various [languages](examples)
2017-05-30 13:50:27 -07:00
***
2017-06-14 17:38:06 -07:00
### Building (linux, macos, bsd, win, ios)
2017-06-14 17:15:51 -07:00
2017-07-18 11:33:04 -07:00
`git submodule init`
`git submodule update`
`make static_lib`
2017-06-08 16:44:25 -07:00
2017-07-18 11:33:04 -07:00
All targets will output to `build/`. Complete instructions [here](BUILDING.md)
2017-05-30 13:50:27 -07:00
2017-05-30 12:35:18 -07:00
***
2017-06-14 17:38:06 -07:00
### Testing and Debugging
- See [TESTING.md](TESTING.md)