All Projects → zerotier → Libzt

zerotier / Libzt

Licence: other
ZeroTier Sockets - Put a network stack in your app

Programming Languages

c
50402 projects - #5 most used programming language
swift
15916 projects
cpp
1120 projects
csharp
926 projects

Projects that are alternatives of or similar to Libzt

Computer Networking
Free resources for a self-taught education in Computer Networking
Stars: ✭ 201 (-58.64%)
Mutual labels:  networking, tcp, udp, sdn
Zerotierone
A Smart Ethernet Switch for Earth
Stars: ✭ 7,839 (+1512.96%)
Mutual labels:  networking, vpn, peer-to-peer, sdn
Message Io
Event-driven message library for building network applications easy and fast.
Stars: ✭ 321 (-33.95%)
Mutual labels:  tcp, udp, sockets
XAsyncSockets
XAsyncSockets is an efficient Python/MicroPython library of managed asynchronous sockets.
Stars: ✭ 28 (-94.24%)
Mutual labels:  tcp, sockets, udp
Networker
A simple to use TCP and UDP networking library for .NET. Compatible with Unity.
Stars: ✭ 408 (-16.05%)
Mutual labels:  networking, tcp, udp
Netlink
Socket and Networking Library using msgpack.org[C++11]
Stars: ✭ 197 (-59.47%)
Mutual labels:  networking, tcp, udp
Mirror
#1 Open Source Unity Networking Library
Stars: ✭ 2,905 (+497.74%)
Mutual labels:  networking, tcp, udp
Goben
goben is a golang tool to measure TCP/UDP transport layer throughput between hosts.
Stars: ✭ 391 (-19.55%)
Mutual labels:  networking, tcp, udp
Bedrockframework
High performance, low level networking APIs for building custom servers and clients.
Stars: ✭ 697 (+43.42%)
Mutual labels:  networking, tcp, sockets
Socketify
Raw TCP and UDP Sockets API on Desktop Browsers
Stars: ✭ 67 (-86.21%)
Mutual labels:  tcp, sockets, udp
husarnet
Husarnet is a Peer-to-Peer VPN to connect your laptops, servers and microcontrollers over the Internet with zero configuration.
Stars: ✭ 128 (-73.66%)
Mutual labels:  peer-to-peer, vpn, sdn
Cnp3
Computer Networking : Principles, Protocols and Practice (first and second edition, third edition is being written on https://github.com/cnp3/ebook)
Stars: ✭ 471 (-3.09%)
Mutual labels:  networking, tcp, udp
Hazel Networking
Hazel Networking is a low level networking library for C# providing connection orientated, message based communication via TCP, UDP and RUDP.
Stars: ✭ 194 (-60.08%)
Mutual labels:  networking, tcp, udp
Objecttransport
Send and Receive objects over TCP or UDP
Stars: ✭ 39 (-91.98%)
Mutual labels:  networking, tcp, udp
Wireguard Docs
📖 Unofficial WireGuard Documentation: Setup, Usage, Configuration, and full example setups for VPNs supporting both servers & roaming clients.
Stars: ✭ 3,201 (+558.64%)
Mutual labels:  networking, vpn, udp
ctsTraffic
ctsTraffic is a highly scalable client/server networking tool giving detailed performance and reliability analytics
Stars: ✭ 125 (-74.28%)
Mutual labels:  tcp, sockets, udp
Leaf
A lightweight and fast proxy utility tries to include any useful features.
Stars: ✭ 530 (+9.05%)
Mutual labels:  vpn, tcp, udp
Gnb
GNB is open source de-centralized VPN to achieve layer3 network via p2p with the ultimate capability of NAT Traversal.GNB是一个开源的去中心化的具有极致内网穿透能力的通过P2P进行三层网络交换的VPN。
Stars: ✭ 225 (-53.7%)
Mutual labels:  vpn, tcp, udp
iit-kgp-network
Information repository and Solutions on IIT KGP Internet Problems.
Stars: ✭ 28 (-94.24%)
Mutual labels:  tcp, udp, vpn
opengnb
GNB is open source de-centralized VPN to achieve layer3 network via p2p with the ultimate capability of NAT Traversal.GNB是一个开源的去中心化的具有极致内网穿透能力的通过P2P进行三层网络交换的VPN。
Stars: ✭ 440 (-9.47%)
Mutual labels:  tcp, udp, vpn

ZeroTier SDK

zts_socket()

Peer-to-peer and cross-platform encrypted connections built right into your app or service. No drivers, no root, and no host configuration.


Examples | API Documentation | Community | Report a Bug

@zerotier r/zerotier

latest libzt version Last Commit Build Status (master branch)

Language/Platform Installation Version Example
C/C++ Build from source version C/C++
Objective-C See examples/objective-c version Objective-C
C# Install-Package ZeroTier.Sockets C#
Python pip install libzt Python
Rust Coming very soon version Rust
Swift See examples/swift version Swift
Java ./build.sh host-jar Java
Node.js See examples/nodejs Node.js
Linux Build from source version C/C++
macOS brew install libzt C/C++, Objective-C
iOS / iPadOS ./build.sh ios-framework Objective-C, Swift
Android ./build.sh android-aar Java

#include "ZeroTierSockets.h"

int main()
{
    zts_start(...)
    zts_join(networkId);
    int fd = zts_socket(ZTS_AF_INET, ZTS_SOCK_STREAM, 0);
    zts_connect(fd, ...);
    ...
}

Build from source

git submodule update --init

This project uses CMake as a build system generator. The scripts build.* simplify building and packaging for various targets. There are many targets and configurations not mentioned here.

Platform Build instructions Notes
Linux ./build.sh host "release" build.sh
macOS ./build.sh host "release" build.sh
Windows . .\build.ps1; Build-Host -BuildType "Release" build.ps1, Requires PowerShell

Using the host keyword will automatically detect the current machine type and build standard libzt for use in C/C++ (no additional language bindings.) See ./build.sh list for additional target options. libzt depends on cURL for the optional portion of the API that interfaces with our hosted web offering (my.zerotier.com). If you do not need this functionality you can omit it by passing -DZTS_ENABLE_CENTRAL_API=0 to CMake.

Example output:

~/libzt/dist/macos-x64-host-release
├── bin
│   ├── client
│   ├── server
│   └── ...
└── lib
    ├── libzt.a
    └── libzt.dylib

Important directories:

Directory Purpose
dist Contains finished targets (libraries, binaries, packages, etc.)
cache Contains build system caches that can safely be deleted after use.
pkg Contains project, script and spec files to generate packages.

Self-hosting (Optional)

We provide ways for your app or enterprise to function indepenently from any of our services if desired.

While we do operate a global network of redundant root servers, network controllers and an admin API/UI called Central, some use-cases require full control over the infrastructure and we try to make it as easy as possible to set up your own controllers and root servers: See here to learn more about how to set up your own network controller, and here to learn more about setting up your own roots.

Help

Licensing

ZeroTier and the ZeroTier SDK (libzt and libztcore) are licensed under the BSL version 1.1. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license. A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See AUTHORS.md for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.). If you want a commercial license to use the ZeroTier SDK in your product contact us directly via [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].