Drop CocoaPods from README

This commit is contained in:
Davide De Rosa 2021-11-05 11:50:42 +01:00
parent 3a546ebfbb
commit 950f5503e3
2 changed files with 14 additions and 34 deletions

View File

@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 4.0.0 (2021-10-27) ## 4.0.0 (2021-11-05)
### Changed ### Changed

View File

@ -72,38 +72,20 @@ Many other flags are ignored too but it's normally not an issue.
### Requirements ### Requirements
- iOS 12.0+ / macOS 10.15+ - iOS 12.0+ / macOS 10.15+
- Xcode 11+ (Swift 5) - SwiftPM 5
- Git (preinstalled with Xcode Command Line Tools) - Git (preinstalled with Xcode Command Line Tools)
- Ruby (preinstalled with macOS)
- [CocoaPods 1.6.0][dep-cocoapods]
- [jazzy][dep-jazzy] (optional, for documentation) - [jazzy][dep-jazzy] (optional, for documentation)
- [Disable Bitcode][issue-51]
It's highly recommended to use the Git and Ruby packages provided by [Homebrew][dep-brew]. It's highly recommended to use the Git package provided by [Homebrew][dep-brew].
### CocoaPods ### Demo
To use with CocoaPods just add this to your Podfile:
```ruby
pod 'TunnelKit'
```
### Testing
Download the library codebase locally: Download the library codebase locally:
$ git clone https://github.com/passepartoutvpn/tunnelkit.git $ git clone https://github.com/passepartoutvpn/tunnelkit.git
Assuming you have a [working CocoaPods environment][dep-cocoapods], setting up the library workspace only requires installing the pod dependencies:
$ pod install There are demo targets containing a simple app for testing the tunnel, called `BasicTunnel`. Open `Demo/TunnelKit.xcodeproject` in Xcode and run it on both iOS and macOS.
After that, open `TunnelKit.xcworkspace` in Xcode and run the unit tests found in the `TunnelKitTests` folder. A simple CMD+U while on `TunnelKit-(iOS|macOS)` should do that as well.
#### Demo
There are demo targets containing a simple app for testing the tunnel, called `BasicTunnel`.
For the VPN to work properly, the `BasicTunnel` demo requires: For the VPN to work properly, the `BasicTunnel` demo requires:
@ -112,7 +94,7 @@ For the VPN to work properly, the `BasicTunnel` demo requires:
both in the main app and the tunnel extension target. both in the main app and the tunnel extension target.
In order to test connectivity in your own environment, modify the file `TunnelKit/Demo/Configuration.swift` to match your VPN server parameters. In order to test connectivity in your own environment, modify the file `Demo/Demo/Configuration.swift` to match your VPN server parameters.
Example: Example:
@ -143,7 +125,7 @@ enter the root directory of the repository and run:
The generated output is stored into the `docs` directory in HTML format. The generated output is stored into the `docs` directory in HTML format.
### Core ### TunnelKitCore
Contains the building blocks of a VPN protocol. Eventually, a consumer would implement the `Session` interface, expected to start and control the VPN session. A session is expected to work with generic network interfaces: Contains the building blocks of a VPN protocol. Eventually, a consumer would implement the `Session` interface, expected to start and control the VPN session. A session is expected to work with generic network interfaces:
@ -152,22 +134,22 @@ Contains the building blocks of a VPN protocol. Eventually, a consumer would imp
There are no physical network implementations (e.g. UDP or TCP) in this module. There are no physical network implementations (e.g. UDP or TCP) in this module.
### AppExtension ### TunnelKitAppExtension
Provides a layer on top of the NetworkExtension framework. Most importantly, bridges native [NWUDPSession][ne-udp] and [NWTCPConnection][ne-tcp] to an abstract `GenericSocket` interface, thus making a multi-protocol VPN dramatically easier to manage. Provides a layer on top of the NetworkExtension framework. Most importantly, bridges native [NWUDPSession][ne-udp] and [NWTCPConnection][ne-tcp] to an abstract `GenericSocket` interface, thus making a multi-protocol VPN dramatically easier to manage.
### Manager ### TunnelKitManager
This subspec includes convenient classes to control the VPN tunnel from your app without the NetworkExtension headaches. Have a look at `VPNProvider` implementations: This component includes convenient classes to control the VPN tunnel from your app without the NetworkExtension headaches. Have a look at `VPNProvider` implementations:
- `MockVPNProvider` (default, useful to test on simulator) - `MockVPNProvider` (default, useful to test on simulator)
- `NetworkExtensionVPNProvider` (for IPSec/IKEv2) - `NetworkExtensionVPNProvider` (for IPSec/IKEv2)
### Protocols/Native ### TunnelKitIKE
Here you find `NativeProvider`, a generic way to manage a VPN profile based on the native IPSec/IKEv2 protocols. Just wrap a `NEVPNProtocolIPSec` or `NEVPNProtocolIKEv2` object in a `NetworkExtensionVPNConfiguration` and use it to install or connect to the VPN. Here you find `NativeProvider`, a generic way to manage a VPN profile based on the native IPSec/IKEv2 protocols. Just wrap a `NEVPNProtocolIPSec` or `NEVPNProtocolIKEv2` object in a `NetworkExtensionVPNConfiguration` and use it to install or connect to the VPN.
### Protocols/OpenVPN ### TunnelKitOpenVPN
Here are the low-level entities on top of which an OpenVPN connection is established. Code is mixed Swift and Obj-C, most of it is not exposed to consumers. The module depends on OpenSSL. Here are the low-level entities on top of which an OpenVPN connection is established. Code is mixed Swift and Obj-C, most of it is not exposed to consumers. The module depends on OpenSSL.
@ -177,9 +159,9 @@ Another goal of this module is packaging up a black box implementation of a [NEP
A debug log snapshot is optionally maintained and shared by the tunnel provider to host apps via the App Group container. A debug log snapshot is optionally maintained and shared by the tunnel provider to host apps via the App Group container.
### Extra/LZO ### TunnelKitLZO
Due to the restrictive license (GPLv2), LZO support is provided as an optional subspec. Due to the restrictive license (GPLv2), LZO support is provided as an optional component.
## License ## License
@ -225,11 +207,9 @@ Website: [passepartoutvpn.app][about-website]
[openvpn]: https://openvpn.net/index.php/open-source/overview.html [openvpn]: https://openvpn.net/index.php/open-source/overview.html
[dep-cocoapods]: https://guides.cocoapods.org/using/getting-started.html
[dep-jazzy]: https://github.com/realm/jazzy [dep-jazzy]: https://github.com/realm/jazzy
[dep-brew]: https://brew.sh/ [dep-brew]: https://brew.sh/
[dep-openssl]: https://www.openssl.org/ [dep-openssl]: https://www.openssl.org/
[issue-51]: https://github.com/passepartoutvpn/tunnelkit/issues/51
[ne-home]: https://developer.apple.com/documentation/networkextension [ne-home]: https://developer.apple.com/documentation/networkextension
[ne-ptp]: https://developer.apple.com/documentation/networkextension/nepackettunnelprovider [ne-ptp]: https://developer.apple.com/documentation/networkextension/nepackettunnelprovider