github.com/psiphon-Labs/psiphon-tunnel-core@v2.0.28+incompatible/ClientLibrary/README.md (about) 1 # Psiphon Client Library README 2 3 ## Mobile 4 5 If you are planning to embed Psiphon in a mobile application, please use the [MobileLibrary](../MobileLibrary). 6 7 ## Using the Library in your App 8 9 **First step:** Review the sample code, located under `example`. 10 This code provides an example of how to correctly use the client library. 11 12 **Second step:** Review the comments for `Start` and `Stop` in [`PsiphonTunnel.go`](PsiphonTunnel.go). They describe the client interface. 13 14 ## Building for Darwin (iOS, MacOS) 15 16 Note that you will need to have Xcode installed on a machine running MacOS. 17 18 ##### Run the build: 19 20 *Ensure that the command below is run from within the `ClientLibrary` directory* 21 22 ``` 23 ./build-darwin.sh all 24 ``` 25 26 This command can also be modified by: 27 - replacing `all` with `ios` or `macos` as the first parameter to `build-darwin.sh` (as in `./build-darwin.sh ios`) to only build binaries for the operating system of choice 28 29 When that command completes, the compiled binaries will be located in the `build` directory. The structure will be: 30 31 ``` 32 build 33 └── darwin 34 └── ios 35 │ └── PsiphonTunnel-ios-arm.h 36 │ └── PsiphonTunnel-ios-arm.dylib 37 │ └── PsiphonTunnel-ios-arm64.h 38 │ └── PsiphonTunnel-ios-arm64.dylib 39 └── macos 40 └── PsiphonTunnel-macos-386.dylib 41 └── PsiphonTunnel-macos-386.dylib 42 └── PsiphonTunnel-macos-amd64.dylib 43 └── PsiphonTunnel-macos-amd64.dylib 44 ``` 45 46 ## Building with Docker (Android, Linux, Windows) 47 48 Note that you may need to use `sudo docker` below, depending on your OS. 49 50 ##### Create the build image: 51 52 1. While in the `ClientLibrary` directory, run the command: `docker build --no-cache=true -t psiclientlibrary-builder .` 53 54 2. Once completed, verify that you see an image named `psiclientlibrary-builder` when running: `docker images` 55 56 ##### Run the build: 57 58 *Ensure that the command below is run from within the `ClientLibrary` directory* 59 60 ```bash 61 cd .. && \ 62 docker run \ 63 --rm \ 64 -v $PWD:/go/src/github.com/Psiphon-Labs/psiphon-tunnel-core \ 65 psiclientlibrary-builder \ 66 /bin/bash -c './make.bash all' \ 67 ; cd - 68 ``` 69 70 This command can also be modified by: 71 - replacing `all` with `android`, `linux`, or `windows` as the first parameter to `make.bash` (as in `./make.bash windows`) to only build binaries for the operating system of choice 72 73 When that command completes, the compiled binaries will be located in the `build` directory (`./build`, and everything under it will likely be owned by root, so be sure to `chown` to an appropriate user) under the current directory. The structure will be: 74 75 ``` 76 build 77 ├── android 78 │ └── PsiphonTunnel-android-arm7.h 79 │ └── PsiphonTunnel-android-arm7.so 80 │ └── PsiphonTunnel-android-arm64.h 81 │ └── PsiphonTunnel-android-arm64.so 82 ├── linux 83 │ └── PsiphonTunnel-linux-386.h 84 │ └── PsiphonTunnel-linux-386.so 85 │ └── PsiphonTunnel-linux-amd64.h 86 │ └── PsiphonTunnel-linux-amd64.so 87 └── windows 88 └── PsiphonTunnel-windows-386.h 89 └── PsiphonTunnel-windows-386.dll 90 └── PsiphonTunnel-windows-amd64.h 91 └── PsiphonTunnel-windows-amd64.dll 92 ```