chrisballinger / ProxyKit

SOCKS proxy server and socket client built upon GCDAsyncSocket.
MIT License
222 stars 59 forks source link

ProxyKit

Build Status Version Platform

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

Apps Using This Library

TODO

Contributing

Thank you for your interest in contributing to ProxyKit! Check out the TODO for things that still need to be done.

  1. Fork the project and work in a feature branch.
  2. Ensure that the existing tests are passing and/or write more tests.
  3. Open a pull request on GitHub.
  4. Thank you!

Author

Chris Ballinger

License

MIT