Skip to main content

HTTP/2 State-Machine based protocol implementation

Project description

Build Status Code Coverage Documentation Status Chat community https://raw.github.com/Lukasa/hyper/development/docs/source/images/hyper.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:

$ pip install h2

Documentation

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

Contributing

hyper-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

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

Authors

hyper-h2 is maintained by Cory Benfield, with contributions from others.

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.0.0.tar.gz (2.1 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.0.0-py3-none-any.whl (57.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: h2-4.0.0.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for h2-4.0.0.tar.gz
Algorithm Hash digest
SHA256 bb7ac7099dd67a857ed52c815a6192b6b1f5ba6b516237fc24a085341340593d
MD5 d086f6a9746a5f4eeb63bb3d0a482e1f
BLAKE2b-256 05b8cc1692aab910c0319b7c35e03c043bdda1cfeff67fa25b555eb2864a36e3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: h2-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 57.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for h2-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac9e293a1990b339d5d71b19c5fe630e3dd4d768c620d1730d355485323f1b25
MD5 296fe1cfda427f145218f3aae80838ac
BLAKE2b-256 bdc25ffec707d0022208787908d9657f782ce35b653baa1e87abecf22a7cf513

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