Skip to main content

HTTP/2 Async Client written with h2, for tornado

Project description

Async HTTP/2 Client

A simple asynchronous HTTP/2 client for Tornado applications, based on the awesome h2 library.

Intended for Python 2 (>= 2.7.9).

This package is in a very early development stage, so expect bugs or changes in the API. If you spot anything wrong, or would like to suggest improvements, please open an issue or a pull request.

Example

Usage in a coroutine may be:

from th2c import AsyncHTTP2Client
from tornado.httpclient import HTTPRequest

client = AsyncHTTP2Client(
    host='nghttp2.org', port=443, secure=True,
)

request = HTTPRequest(
    url='https://nghttp2.org/httpbin/get',
    method='GET',
)

res = yield client.fetch(request)

TODO

  • moar tests :)
  • SERVER_PUSH
  • follow_redirects
  • priority control

Development setup

If you wish to create a development environment to work on th2c, you can use a Vagrant setup or a virtual environment. The Vagrant setup is located under vm, an Ubuntu 16.04 64bit box with Go and Python 2 installed, that maps the project directory under /opt/dev/th2c.

For a minimal set of “integration tests”, a Go web server is included in test_server that simply echoes back what it receives.

You can run it in debug mode, from the project directory, by executing:

GODEBUG=http2debug=1 go run test_server/main.go.

After the server has started, you should run the client by executing:

python -m th2c.

Log files should be produced under /opt/dev/th2c/logs.

You can also run unit tests with: nosetests tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
th2c-0.3.1-py3-none-any.whl (15.1 kB) Copy SHA256 hash SHA256 Wheel py3
th2c-0.3.1.tar.gz (13.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page