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

63 lines
2.2 KiB
Markdown
Raw Normal View History

2019-03-18 14:22:02 -07:00
# ZeroTier SDK (libzt, libztcore)
Library edition of [ZeroTier](https://github.com/zerotier/ZeroTierOne)
2017-06-14 16:58:48 -07:00
***
2017-05-05 18:51:04 -07:00
2017-08-01 14:25:43 -07:00
<a href="https://www.zerotier.com/?pk_campaign=github_libzt"><img src="https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/artwork/ZeroTierIcon.png" width="128" height="128" align="left" hspace="20" vspace="9"></a>
2017-05-05 18:51:04 -07:00
2019-03-18 14:22:02 -07:00
The ZeroTier SDK is composed of two libraries: `libztcore` which is the platform-agnostic network hypervisor, and `libzt` which is the network hypervisor paired with a userspace network stack. `libzt` is a superset of `libztcore` and is distinguished by the fact that it exposes a standard [socket API](https://en.wikipedia.org/wiki/Berkeley_sockets) and simple network control API. With these libraries the stack and virtual link are exclusive to your app and traffic is fully encrypted via the [Salsa20](https://en.wikipedia.org/wiki/Salsa20) cipher. For a more in-depth discussion on the technical side of ZeroTier, check out our [Manual](https://www.zerotier.com/manual.shtml?pk_campaign=github_libzt)
2017-06-14 17:09:18 -07:00
***
2019-03-18 14:22:02 -07:00
<br>
2019-03-18 14:22:02 -07:00
For a complete example, see [test/simple.cpp](test/simple.cpp), and anything in the [examples](examples) directory. With no error checking, a paraphrased example is as follows:
2017-06-14 17:53:32 -07:00
2019-03-18 14:22:02 -07:00
```
#include "ZeroTier.h"
2019-03-18 14:22:02 -07:00
void myZeroTierEventCallback(struct zts_callback_msg *msg)
2017-10-20 01:25:01 -07:00
{
2019-03-18 14:22:02 -07:00
switch (msg->eventCode)
{
//
}
}
2019-03-18 14:22:02 -07:00
int main()
{
zts_start("yourConfig/key/path", &myZeroTierEventCallback, 9994);
zts_join(0x0123456789abcdef);
zts_socket(ZTS_AF_INET, ZTS_SOCK_STREAM, 0);
zts_connect(fd, (const struct sockaddr *)&addr, sizeof(addr));
2019-03-25 14:09:10 -07:00
zts_write(fd, "welcome to the machine", 22);
2019-03-18 14:22:02 -07:00
zts_close(fd);
zts_stop();
return 0;
}
2019-03-18 14:22:02 -07:00
...
```
2019-03-18 14:22:02 -07:00
***
2019-03-18 14:22:02 -07:00
## Build
2019-03-18 14:22:02 -07:00
Build scripts use a combination of make, and cmake. To retrieve sources for all submodules, patch them, and build all targets (debug and release) for your host machine, issue the following:
```
2019-03-18 14:22:02 -07:00
make update
make patch
make all
```
2019-03-18 14:22:02 -07:00
All build targets can be seen by using `make list`.
2018-07-31 17:43:50 -07:00
2019-03-18 14:22:02 -07:00
Resultant libraries will be placed in `lib`, test and example programs will be placed in `bin`.
2017-05-30 13:50:27 -07:00
2017-05-30 12:35:18 -07:00
***
2019-03-18 14:22:02 -07:00
## Commercial License
2019-03-18 14:22:02 -07:00
If you want a commercial license to use the ZeroTier SDK in your product contact us directly via `contact@zerotier.com`
2018-07-19 17:19:06 -07:00