summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-07-08 13:10:02 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-07-08 13:10:02 -0700
commit6d8de214eb5abd6ec03a8e9504e75dc2cbc58d2a (patch)
tree972b95576f4b63e5490587dec0b02cab8a08d93a /node
parent5bf3c54cd3040b8edfe44b80fa5c9e772f4be74a (diff)
downloadinfinitytier-6d8de214eb5abd6ec03a8e9504e75dc2cbc58d2a.tar.gz
infinitytier-6d8de214eb5abd6ec03a8e9504e75dc2cbc58d2a.zip
Docs and controller API version
Diffstat (limited to 'node')
-rw-r--r--node/README.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/node/README.md b/node/README.md
new file mode 100644
index 00000000..01378c75
--- /dev/null
+++ b/node/README.md
@@ -0,0 +1,14 @@
+ZeroTier Virtual Switch 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](../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.