amphp/artax

Asynchronous parallel HTTP/1.1 client built on the Amp concurrency framework


README

Build Status CoverageStatus License

Artax is an asynchronous HTTP/1.1 client for Amp. Its API simplifies standards-compliant HTTP resource traversal and RESTful web service consumption without obscuring the underlying protocol. The library manually implements HTTP over TCP sockets; as such it has no dependency on ext/curl.

Features

  • Requests asynchronously for full single-threaded concurrency
  • Pools persistent keep-alive connections
  • Transparently follows redirects
  • Decodes gzipped entity bodies
  • Exposes headers and message data
  • Streams entity bodies for memory management with large transfers
  • Supports all standard and custom HTTP method verbs
  • Simplifies HTTP form submissions
  • Implements secure-by-default TLS (https://)
  • Supports cookies and sessions
  • Functions seamlessly behind HTTP proxies

Project Goals

  • Model all code as closely as possible to the relevant HTTP protocol RFCs
  • Implement an HTTP/1.1 client built on raw socket streams with no libcurl dependency

Installation

This package can be installed as a Composer dependency.

composer require amphp/artax

Documentation

Documentation is bundled within this repository in the docs directory.

Examples

More extensive code examples reside in the examples directory.

Versioning

amphp/artax follows the semver semantic versioning specification like all other amphp packages.

Version Bug Fixes Until Security Fixes Until
3.x TBA TBA
2.x 2017-12-31 2018-12-31
1.x Unmaintained. Unmaintained.

Security

If you discover any security related issues, please email me@kelunik.com instead of using the issue tracker.

License

The MIT License (MIT). Please see LICENSE for more information.