{"categories":[{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/3"},{"label":"WWW/HTTP","url":"https://skillfed.io/packages/category/internet-www-http/2"}],"enrichment":{"capability":"jh2 is a pure-Python HTTP/2 protocol state machine that handles frame encoding, decoding, and connection state management without network or concurrency layers.","skillfed_tags":["http2","protocol-implementation","state-machine"],"use_cases":["Build HTTP/2 client libraries by handling protocol state and frame serialization without implementing the spec from scratch.","Implement HTTP/2 servers that need frame-level control independent of a specific async runtime or socket library.","Add HTTP/2 support to existing network libraries by wrapping jh2's state machine around your own I/O layer.","Test HTTP/2 protocol compliance by using jh2 to generate and validate frames without network overhead.","Embed HTTP/2 in embedded systems or constrained environments where a pure-Python, dependency-free implementation is preferred."],"what_it_does":"jh2 is a fork of the hyper/h2 HTTP/2 protocol stack that reimplements the state machine in pure Python with embedded dependencies for a cleaner dependency tree. It provides in-memory HTTP/2 frame handling\u2014encoding headers and data into frames, managing connection state, and parsing incoming frames into events\u2014but does not include network I/O, parsing layers, or concurrency primitives. You supply raw socket data and receive back frames to send and events to process.\n\nThe package is designed as a building block for HTTP/2 implementations. You create a connection object, call methods to queue headers and data, retrieve serialized frames via `data_to_send()`, and feed received bytes into `receive_data()` to get back protocol events. It works with any network transport or concurrency model you choose, making it suitable for embedding in async frameworks, synchronous servers, or custom HTTP clients.","worth_installing":"Yes. jh2 is actively maintained, has no runtime dependencies, supports Python 3.7\u20133.14, carries no known vulnerabilities, and is licensed permissively under MIT. It is a solid choice if you need a low-friction, embeddable HTTP/2 state machine. Install it if you are building HTTP/2 support and want to avoid managing separate packages."},"id":"jh2","links":{"html":"https://skillfed.io/packages/jh2","md":"https://skillfed.io/packages/jh2.md","pypi":"https://pypi.org/project/jh2/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-29","license_spdx":"MIT","license_treatment":"permissive","name":"jh2","python_support":"supports_current","summary":"HTTP/2 State-Machine based protocol implementation"},"popularity":{"monthly_downloads":1893994,"position":3456,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"5.0.13"}
