Adam Ierymenko cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
..
AES.cpp 91ce4c4ea6 Refactoring protocol marshal/unmarshal code... 6 yıl önce
AES.hpp 91ce4c4ea6 Refactoring protocol marshal/unmarshal code... 6 yıl önce
Address.hpp 91ce4c4ea6 Refactoring protocol marshal/unmarshal code... 6 yıl önce
AtomicCounter.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Buf.cpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Buf.hpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
C25519.cpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
C25519.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
CMakeLists.txt cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Capability.cpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
Capability.hpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
CertificateOfMembership.cpp 59da359b06 More porting to new Buf system. 6 yıl önce
CertificateOfMembership.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
CertificateOfOwnership.cpp 59da359b06 More porting to new Buf system. 6 yıl önce
CertificateOfOwnership.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
Constants.hpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Credential.cpp 03190c5a55 Bunch of build fixes, some docs 6 yıl önce
Credential.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Dictionary.cpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Dictionary.hpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
ECC384.cpp 9642ff5fb9 . 6 yıl önce
ECC384.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Endpoint.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Endpoint.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Hashtable.hpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Identity.cpp 91ce4c4ea6 Refactoring protocol marshal/unmarshal code... 6 yıl önce
Identity.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
IncomingPacket.cpp 0de194dab3 It builds again 6 yıl önce
IncomingPacket.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
InetAddress.cpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
InetAddress.hpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
LZ4.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
LZ4.hpp dab968ed96 Put LZ4 in its own file. 6 yıl önce
Locator.cpp 5c6bf9d0a4 Wiring up addroot/removeroot 6 yıl önce
Locator.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
MAC.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
Membership.cpp 59da359b06 More porting to new Buf system. 6 yıl önce
Membership.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Meter.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
MulticastGroup.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
Mutex.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Network.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Network.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
NetworkConfig.cpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
NetworkConfig.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
NetworkController.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Node.cpp 59da359b06 More porting to new Buf system. 6 yıl önce
Node.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
OS.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Path.cpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Path.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Peer.cpp 0de194dab3 It builds again 6 yıl önce
Peer.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
Poly1305.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Poly1305.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Protocol.cpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
Protocol.hpp 91ce4c4ea6 Refactoring protocol marshal/unmarshal code... 6 yıl önce
README.md 8a2ff0b31e Actual documentation. 9 yıl önce
Revocation.cpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
Revocation.hpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
RingBuffer.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
RuntimeEnvironment.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
SHA512.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
SHA512.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Salsa20.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Salsa20.hpp dab968ed96 Put LZ4 in its own file. 6 yıl önce
ScopedPtr.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
SelfAwareness.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
SelfAwareness.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
SharedPtr.hpp eef70e198b Version 2.x notice updates and other boring stuff. 6 yıl önce
Switch.cpp 59da359b06 More porting to new Buf system. 6 yıl önce
Switch.hpp 59da359b06 More porting to new Buf system. 6 yıl önce
Tag.cpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
Tag.hpp d5b9a54c55 Continuing work on new buffer type... 6 yıl önce
Topology.cpp d7b31fe014 Warning removal and build fixes. 6 yıl önce
Topology.hpp 03190c5a55 Bunch of build fixes, some docs 6 yıl önce
Trace.cpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Trace.hpp 33bb61c63d Loads of refactoring, integration of new version of Trace. 6 yıl önce
Utils.cpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce
Utils.hpp cdc6c42375 Take Dictionary behind the barn... 6 yıl önce

README.md

ZeroTier Network Hypervisor Core

This directory contains the real ZeroTier: a completely OS-independent global virtual Ethernet switch engine. This is where the magic happens.

Give it wire packets and it gives you Ethernet packets, and vice versa. The core contains absolutely no actual I/O, port configuration, or other OS-specific code (except Utils::getSecureRandom()). It provides a simple C API via /include/ZeroTierOne.h. It's designed to be small and maximally portable for future use on small embedded and special purpose systems.

Code in here follows these guidelines:

  • Keep it minimal, especially in terms of code footprint and memory use.
  • There should be no OS-dependent code here unless absolutely necessary (e.g. getSecureRandom).
  • If it's not part of the core virtual Ethernet switch it does not belong here.
  • No C++11 or C++14 since older and embedded compilers don't support it yet and this should be maximally portable.
  • Minimize the use of complex C++ features since at some point we might end up "minus-minus'ing" this code if doing so proves necessary to port to tiny embedded systems.