HTTP/2 Async Client written with h2, for tornado
Project description
Async HTTP/2 Client
A simple asynchronous HTTP/2 client for Tornado, 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.
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 is 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.