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

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.