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.4.1.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.4.1-py3-none-any.whl (62.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: h2-4.4.1.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for h2-4.4.1.tar.gz
Algorithm Hash digest
SHA256 4e866ffb1a869ae14dd9b5e6beb5c24a13da0495ad72b65925ded182521c1516
MD5 8ad21558fadb74bc42af25681c9ba7ef
BLAKE2b-256 e7857c366e69d84c17bb778fe41419e1fbcce3033d5b7ce29bbffff0a98b859f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: h2-4.4.1-py3-none-any.whl
  • Upload date:
  • Size: 62.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for h2-4.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0e25f1462b23c9cb82d9eb02e28bc706dac2a68cb457c6a0d74d63c8a2a5d0e6
MD5 1d83ea6e010ca64c13d533dcc50453e4
BLAKE2b-256 7e22e85faf23bd72a92d1921e37d674ca56eb298a3c8be31fdecef0ff2b3aaac

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