Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mysteriumnetwork/go-openvpn
https://github.com/mysteriumnetwork/go-openvpn
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/mysteriumnetwork/go-openvpn
- Owner: mysteriumnetwork
- License: agpl-3.0
- Created: 2018-08-14T13:45:33.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-12T01:14:52.000Z (6 months ago)
- Last Synced: 2024-06-20T11:56:26.610Z (5 months ago)
- Language: Go
- Size: 24.6 MB
- Stars: 113
- Watchers: 21
- Forks: 34
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-network-stuff - **35**星
README
# go-openvpn
[![pipeline status](https://gitlab.com/mysteriumnetwork/go-openvpn/badges/master/pipeline.svg)](https://gitlab.com/mysteriumnetwork/go-openvpn/pipelines)
[![Go Report Card](https://goreportcard.com/badge/github.com/mysteriumnetwork/go-openvpn)](https://goreportcard.com/report/github.com/mysteriumnetwork/go-openvpn)Go gettable library for wrapping openvpn functionality in go way.
There are two main options for openvpn integration:
1. As external process - go-openvpn provides external process controls (start/stop), handles management interface, can work both
as client and a service. External openvpn exe IS NOT provided (tested with openvpn 2.4.x release)
2. As built-in library - openvpn wraps c++ crosscompiled libary for all major oses (darwin,linux,win,ios and android), but has a
limitation - can only work as client only.## Development environment
* **Step 1.** Get development dependencies
```bash
go get github.com/karalabe/xgo
go get golang.org/x/mobile/cmd/gomobile
```* **Step 2.** Get project dependencies
```bash
make deps
```* **Step 3.** Build example (Desktop)
```bash
go run examples/desktop/main.go examples/profile.ovpn
```* **Step 4.** Build example (iOS)
```bash
./gomobile_example_ios.sh
```## Building bridge libraries
```bash
scripts/xgo_run.sh scripts/build-bridge.sh
```## Run tests
```
make test
# We recommend running tests on frozen Linux container
scripts/xgo_run.sh make test
```## Build
* **Step 1.** Sanity check
```bash
./check-all.sh
```* **Step 2.** Build mobile libraries
```bash
./gomobile_ios.sh -o build/Openvpn3.framework
```