|
1 | 1 | # clue/http-proxy-react [](https://travis-ci.org/clue/php-http-proxy-react)
|
2 | 2 |
|
3 |
| -Async HTTP proxy connector, use any TCP/IP protocol through an HTTP CONNECT proxy server, |
4 |
| -built on top of [ReactPHP](https://reactphp.org). |
| 3 | +Async HTTP proxy connector, use any TCP/IP-based protocol through an HTTP |
| 4 | +CONNECT proxy server, built on top of [ReactPHP](https://reactphp.org). |
| 5 | + |
| 6 | +HTTP CONNECT proxy servers (also commonly known as "HTTPS proxy" or "SSL proxy") |
| 7 | +are commonly used to tunnel HTTPS traffic through an intermediary ("proxy"), to |
| 8 | +conceal the origin address (anonymity) or to circumvent address blocking |
| 9 | +(geoblocking). While many (public) HTTP CONNECT proxy servers often limit this |
| 10 | +to HTTPS port `443` only, this can technically be used to tunnel any |
| 11 | +TCP/IP-based protocol (HTTP, SMTP, IMAP etc.). |
| 12 | +This library provides a simple API to create these tunneled connection for you. |
| 13 | +Because it implements ReactPHP's standard |
| 14 | +[`ConnectorInterface`](https://github.com/reactphp/socket#connectorinterface), |
| 15 | +it can simply be used in place of a normal connector. |
| 16 | +This makes it fairly simple to add HTTP CONNECT proxy support to pretty much any |
| 17 | +existing higher-level protocol implementation. |
| 18 | + |
| 19 | +* **Async execution of connections** - |
| 20 | + Send any number of HTTP CONNECT requests in parallel and process their |
| 21 | + responses as soon as results come in. |
| 22 | + The Promise-based design provides a *sane* interface to working with out of |
| 23 | + bound responses and possible connection errors. |
| 24 | +* **Standard interfaces** - |
| 25 | + Allows easy integration with existing higher-level components by implementing |
| 26 | + ReactPHP's standard |
| 27 | + [`ConnectorInterface`](https://github.com/reactphp/socket#connectorinterface). |
| 28 | +* **Lightweight, SOLID design** - |
| 29 | + Provides a thin abstraction that is [*just good enough*](http://en.wikipedia.org/wiki/Principle_of_good_enough) |
| 30 | + and does not get in your way. |
| 31 | + Builds on top of well-tested components and well-established concepts instead of reinventing the wheel. |
| 32 | +* **Good test coverage** - |
| 33 | + Comes with an automated tests suite and is regularly tested against actual proxy servers in the wild |
5 | 34 |
|
6 | 35 | **Table of contents**
|
7 | 36 |
|
@@ -329,14 +358,20 @@ $proxy = new ProxyConnector('http+unix://user:pass@/tmp/proxy.sock', $connector)
|
329 | 358 | The recommended way to install this library is [through Composer](https://getcomposer.org).
|
330 | 359 | [New to Composer?](https://getcomposer.org/doc/00-intro.md)
|
331 | 360 |
|
| 361 | +This project follows [SemVer](http://semver.org/). |
332 | 362 | This will install the latest supported version:
|
333 | 363 |
|
334 | 364 | ```bash
|
335 |
| -$ composer require clue/http-proxy-react:^1.2 |
| 365 | +$ composer require clue/http-proxy-react:^1.3 |
336 | 366 | ```
|
337 | 367 |
|
338 | 368 | See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
|
339 | 369 |
|
| 370 | +This project aims to run on any platform and thus does not require any PHP |
| 371 | +extensions and supports running on legacy PHP 5.3 through current PHP 7+ and |
| 372 | +HHVM. |
| 373 | +It's *highly recommended to use PHP 7+* for this project. |
| 374 | + |
340 | 375 | ## Tests
|
341 | 376 |
|
342 | 377 | To run the test suite, you first need to clone this repo and then install all
|
|
0 commit comments