Skip to main content

Pure-Python HTTP/2 protocol implementation

Project description

Build Status Code Coverage Documentation Status Chat community https://raw.github.com/python-hyper/documentation/master/source/logo/hyper-black-bg-white.png

This repository contains a pure-Python implementation of a HTTP/2 protocol stack. It’s written from the ground up to be embeddable in whatever program you choose to use, ensuring that you can speak HTTP/2 regardless of your programming paradigm.

You use it like this:

import h2.connection
import h2.config

config = h2.config.H2Configuration()
conn = h2.connection.H2Connection(config=config)
conn.send_headers(stream_id=stream_id, headers=headers)
conn.send_data(stream_id, data)
socket.sendall(conn.data_to_send())
events = conn.receive_data(socket_data)

This repository does not provide a parsing layer, a network layer, or any rules about concurrency. Instead, it’s a purely in-memory solution, defined in terms of data actions and HTTP/2 frames. This is one building block of a full Python HTTP implementation.

To install it, just run:

$ python -m pip install h2

Documentation

Documentation is available at https://h2.readthedocs.io .

Contributing

h2 welcomes contributions from anyone! Unlike many other projects we are happy to accept cosmetic contributions and small contributions, in addition to large feature requests and changes.

Before you contribute (either by opening an issue or filing a pull request), please read the contribution guidelines.

License

h2 is made available under the MIT License. For more details, see the LICENSE file in the repository.

Authors

h2 was authored by Cory Benfield and is maintained by the members of python-hyper.

Project details


Download files

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

Source Distribution

h2-4.3.0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

h2-4.3.0-py3-none-any.whl (61.8 kB view details)

Uploaded Python 3

File details

Details for the file h2-4.3.0.tar.gz.

File metadata

  • Download URL: h2-4.3.0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for h2-4.3.0.tar.gz
Algorithm Hash digest
SHA256 6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1
MD5 b4781bbaaae609aa759565585718e0d7
BLAKE2b-256 1d17afa56379f94ad0fe8defd37d6eb3f89a25404ffc71d4d848893d270325fc

See more details on using hashes here.

File details

Details for the file h2-4.3.0-py3-none-any.whl.

File metadata

  • Download URL: h2-4.3.0-py3-none-any.whl
  • Upload date:
  • Size: 61.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for h2-4.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd
MD5 662e1c2b1cc51dfff14224836789fbd8
BLAKE2b-256 69b2119f6e6dcbd96f9069ce9a2665e0146588dc9f88f29549711853645e736a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page