All Projects → vladmunteanu → th2c

vladmunteanu / th2c

Licence: MIT license
Tornado HTTP/2 Client

Programming Languages

python
139335 projects - #7 most used programming language
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to th2c

cryptonice
CryptoNice is both a command line tool and library which provides the ability to scan and report on the configuration of SSL/TLS for your internet or internal facing web services. Built using the sslyze API and ssl, http-client and dns libraries, cryptonice collects data on a given domain and performs a series of tests to check TLS configuration…
Stars: ✭ 91 (+15.19%)
Mutual labels:  http2
lua-resty-http2
The HTTP/2 Protocol (Client Side) Implementation for OpenResty.
Stars: ✭ 73 (-7.59%)
Mutual labels:  http2
jetty-load-generator
jetty-project.github.io/jetty-load-generator/
Stars: ✭ 62 (-21.52%)
Mutual labels:  http2
rabbitChat
A Chat-Server/Chat-System based on AMQP protocol(RabbitMQ) + AMQP Python Client(PIKA) + Websockets(SockJS) + Async Python Server(Tornado)
Stars: ✭ 53 (-32.91%)
Mutual labels:  tornado
tornado-alf
Tornado Oauth 2 client
Stars: ✭ 17 (-78.48%)
Mutual labels:  tornado
phorklift
Phorklift is an HTTP server and proxy daemon, with clear, powerful and dynamic configuration.
Stars: ✭ 43 (-45.57%)
Mutual labels:  http2
hurl
http(s)+h2 server load tester
Stars: ✭ 143 (+81.01%)
Mutual labels:  h2
tornado-websocket-chat
A chat application build on top of tornado python web framework and websocket.
Stars: ✭ 19 (-75.95%)
Mutual labels:  tornado
diffido
Watch web pages for changes
Stars: ✭ 19 (-75.95%)
Mutual labels:  tornado
nghttp2-alpine
Minimal nghttp2 docker image with ALPN support
Stars: ✭ 14 (-82.28%)
Mutual labels:  http2
pusher
golang : HTTP2 Push Handler collection
Stars: ✭ 15 (-81.01%)
Mutual labels:  http2
restio
HTTP Client for Dart inspired by OkHttp
Stars: ✭ 46 (-41.77%)
Mutual labels:  http2
libmicrohttpd-http2
HTTP/2 support for libmicrohttpd
Stars: ✭ 21 (-73.42%)
Mutual labels:  http2
kdniao python
快递鸟 kdniao python sdk, with tornado async & asyncio http client support.
Stars: ✭ 25 (-68.35%)
Mutual labels:  tornado
cleanapi
Pretty tornado wrapper for making lightweight REST API services
Stars: ✭ 26 (-67.09%)
Mutual labels:  tornado
http2-client
A native HTTP2 client in Haskell
Stars: ✭ 41 (-48.1%)
Mutual labels:  http2
saisoku
Saisoku is a Python module that helps you build complex pipelines of batch file/directory transfer/sync jobs.
Stars: ✭ 40 (-49.37%)
Mutual labels:  tornado
PyCMS-Tornado
基于python开发的一套内容管理系统
Stars: ✭ 71 (-10.13%)
Mutual labels:  tornado
http2-examples-empireconf
HTTP2 examples for EmpireConf talk
Stars: ✭ 15 (-81.01%)
Mutual labels:  http2
Ghost-over-Caddy
This repo/script will install Ghost blog over Caddy web server as a reverse proxy.
Stars: ✭ 20 (-74.68%)
Mutual labels:  http2

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].