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.
f765e29027d95de6716eaeea5931a3597f5af6e2
libzt
Library version of ZeroTier
libzt makes it easy to securely connect devices, servers, cloud VMs, containers, and apps everywhere and manage them at scale. We provide a socket-like API supporting SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW. There's no need for system-wide virtual interfaces. This connection is exclusive to your app and fully encrypted via the Salsa20 cipher. For a more in-depth discussion on the technical side of ZeroTier, check out our Manual
- Pre-built library binaries can be found at: zerotier.com/download.shtml
- Bindings for popular languages like Scala, Swift, Java, Python, etc. can be found here
C++ Example
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include "libzt.h"
int main()
{
char *str = "welcome to the machine";
char *remoteIp = "10.8.8.42";
int remotePort = 8080;
int fd, err = 0;
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(remoteIp);
addr.sin_port = htons(remotePort);
zts_startjoin("path", 0xc7cd7c981b0f52a2); // config path, network ID
if ((fd = zts_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("error creating socket\n");
}
if ((err = zts_connect(fd, (const struct sockaddr *)&addr, sizeof(addr))) < 0) {
printf("error connecting to remote host\n");
}
if ((err = zts_write(fd, str, strlen(str))) < 0) {
printf("error writing to socket\n");
}
zts_close(fd);
zts_stop();
return 0;
}
For an example using only the Virtual Layer 2, see examples/layer2
Build
We recommend using CMake and clang.
git submodule init
git submodule update
make patch
cmake -H. -Bbuild
cmake --build build --config Release
Builds are placed in bin\lib. Use --config Debug for a build with debug info included.
Commercial License
If you want a commercial license to use libzt in your product contact us directly via contact@zerotier.com
Description
Languages
C++
58%
C
21.6%
C#
5.8%
Java
5%
Rust
3.3%
Other
6.3%