ProxyKit
Objective-C SOCKS 5 / RFC 1928 proxy server and socket client libraries built upon GCDAsyncSocket.
Usage
SOCKSProxy
- Dead simple SOCKSv5 proxy server for OS X or iOS. Supports acting as background "VoIP" sockets on iOS via GCDAsyncSocket.
SOCKSProxy *proxy = [[SOCKSProxy alloc] init];
[proxy startProxyOnPort:9050];
GCDAsyncProxySocket
- Proxy-compatible subclass and drop-in replacement for (most of) GCDAsyncSocket.
GCDAsyncProxySocket *socket = [[GCDAsyncProxySocket alloc] init];
[socket setProxyHost:@"127.0.0.1" port:9050 version:GCDAsyncSocketSOCKSVersion5];
[socket connectToHost:@"example.com" onPort:80 error:nil];
For more documentation check out ProxyKit on Cocoadocs.
Installation
We use Cocoapods. There are two subspecs for the server and client code. By default both are included. Put one of these your Podfile
:
pod 'ProxyKit'
pod 'ProxyKit/Server' # Just the server code
pod 'ProxyKit/Client' # Just the client code
To install:
$ pod install
Tests
You can run tests by opening up ProxyKit.xcworkspace
after installing the Pods.
Dependencies
- GCDAsyncSocket - GCD-based Async Objective-C socket library
- CocoaLumberjack - A fast & simple, yet powerful & flexible logging framework for Mac and iOS
Apps Using This Library
- Tether - Tethering for non-jailbroken iOS Devices over USB.
- ChatSecure - free and open source encrypted chat client for iPhone and Android that supports OTR encryption over XMPP.
TODO
- Better documentation
- More tests
Contributing
Thank you for your interest in contributing to ProxyKit! Check out the TODO for things that still need to be done.
- Fork the project and work in a feature branch.
- Ensure that the existing tests are passing and/or write more tests.
- Open a pull request on GitHub.
- Thank you!
Author
License
MIT