updated docs and mac makefile
This commit is contained in:
47
docs/integrations.md
Normal file
47
docs/integrations.md
Normal file
@@ -0,0 +1,47 @@
|
||||
ZeroTier Integrations
|
||||
====
|
||||
|
||||
If you want everything built at once, type `make all` and go play outside for a few minutes, we'll copy all of the targets into the `build` directory for you along with specific instructions contained in a `README.md` on how to use each binary. You can then use `make -s check` to check the build status of each binary target.
|
||||
|
||||
*NOTE for Apple platforms: In order to build iOS/OSX Frameworks and Bundles you will need XCode command line tools `xcode-select --install`*
|
||||
|
||||
*NOTE: For Android JNI libraries to build you'll need to install [Android Studio](https://developer.android.com/studio/index.html) the [Android NDK](https://developer.android.com/ndk/index.html). Currently only Android NDK r10e is supported and can be found [here for OSX](http://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip) and [here for Linux](http://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip). You'll need to tell our project where you put it by putting the path in [this file](android/proj/local.properties), you'll need to install the Android Build-Tools (this can typically be done through the editor the first time you start it up), and finally you should probably upgrade your Gradle plugin if it asks you to. If you don't have these things installed and configured we will detect that and just skip those builds automatically. Additionally, you can specify the target architectures you wish to build for by editing [Application.mk](android/android_jni_lib/java/jni/Application.mk). By default it will build `arm64-v8a`, `armeabi`, `armeabi-v7a`, `mips`, `mips64`, `x86`, and `x86_64`*
|
||||
|
||||
Below are the specific instructions for each integration requiring *little to no modification to your code*. Remember, with a full build we'll put a copy of the appropriate integration instructions in the resultant binary's folder for you anyway.
|
||||
|
||||
For more support on these integrations, or if you'd like help creating a new integration, stop by our [community section](https://www.zerotier.com/community/)!
|
||||
|
||||
***
|
||||
## Important Build flags
|
||||
|
||||
- `SDK_DEBUG` - Turns on SDK activity/warning/error output. Levels of verbosity can be adjusted in `src/SDK_Debug.h`
|
||||
- `SDK_DEBUG_LOGFILE` - Used in conjunction with `SDK_DEBUG`, this will write all SDK debug chatter to a log file. To use this, set `make SDK_DEBUG_LOGFILE=1` then `export ZT_SDK_LOGFILE=debug.log`.
|
||||
- `SDK_LWIP_DEBUG` - Turns on debug output for the lwIP library.
|
||||
- `SDK_BUNDLED` - Builds the SDK as a single bundled target including a the RPC mechanism, the lwIP library, and the ZeroTier service.
|
||||
- `SDK_SOCKS_PROXY` - Enables the SOCK5 Proxy. This flag is enabled by default on must builds, especially mobile.
|
||||
|
||||
***
|
||||
## Current Integrations
|
||||
|
||||
### Apple `make apple`
|
||||
##### iOS
|
||||
- [Embedding within an app](../docs/ios_zt_sdk.md) `make ios_app_framework`
|
||||
- [Unity3D plugin](../docs/unity3d_ios_zt_sdk.md) `make ios_unity3d_bundle`
|
||||
|
||||
##### OSX
|
||||
- [Embedding within an app](../docs/osx_zt_sdk.md) `make osx_app_framework`
|
||||
- [Dynamic-linking into an app/service at runtime](../docs/osx_zt_sdk.md) `make osx_shared_lib`
|
||||
- [Unity3D plugin](../docs/unity3d_osx_zt_sdk.md) `make osx_unity3d_bundle`
|
||||
|
||||
***
|
||||
### Linux
|
||||
- [Dynamic-linking into an app/service at runtime](../docs/linux_zt_sdk.md) `make linux_shared_lib`
|
||||
- [Using the SDK with Docker](../docs/docker_linux_zt_sdk.md) `make linux_shared_lib`
|
||||
|
||||
### Android `make android`
|
||||
- [Embedding within an app](../docs/android_zt_sdk.md) `make android_jni_lib`
|
||||
- [Unity 3D plugin](../docs/unity3d_android_zt_sdk.md) `make android_unity3d_plugin`
|
||||
|
||||
***
|
||||
### Windows
|
||||
- Not yet.
|
||||
26
docs/zt_sdk_intro.md
Normal file
26
docs/zt_sdk_intro.md
Normal file
@@ -0,0 +1,26 @@
|
||||
ZeroTier SDK (alpha)
|
||||
======
|
||||
|
||||
ZeroTier-enabled apps. Virtual network access embedded directly into applications and games.
|
||||
|
||||
## What does it do?
|
||||
|
||||
Imagine starting an instance of your application or game and having it automatically be a member of your virtual network without having to rewrite your networking layer.
|
||||
|
||||
## How is it used?
|
||||
|
||||
There are generally two ways one might want to use the service.
|
||||
|
||||
- The first approach is a *compile-time static linking* of our service directly into your application. With this option you can bundle our entire functionality right into your app with no need to communicate with a service externally, it'll all be handled automatically. This is most typical for mobile applications, games, etc.
|
||||
|
||||
- The second is a service-oriented approach where our network call "intercept" is *dynamically-linked* into your applications upon startup and will communicate to a single ZeroTier service on the host. This can be useful if you've already compiled your applications and can't perform a static linking.
|
||||
|
||||

|
||||
|
||||
## Build instructions
|
||||
|
||||
Check out our [Integrations](integrations/) to learn how to integrate this into your application.
|
||||
|
||||
## How does it work?
|
||||
|
||||
We've built a special background service that pairs the ZeroTier protocol with a user-space [Lightweight IP (lwIP) stack](http://savannah.nongnu.org/projects/lwip/) to create a new way for you to bring your applications onto your virtual network. For a more in-depth explanation of our technology take a look at our [SDK Primer](docs/zt_sdk.md)
|
||||
Reference in New Issue
Block a user