Skip to main content

A modern async server framework for HTTP/3 and WebTransport over QUIC.

Project description

HTTP3X

A WebSocket replacement built on HTTP/3 and QUIC.

Async Python server framework for HTTP/3 + WebTransport (QUIC).

What WebSocket would look like if it was designed today.

🚀 Quick Example

from http3x import App
from http3x.wt import Session

app = App()

class Echo(Session):
    async def on_stream(self, stream):
        async for data in stream:
            await stream.send(data)

app.wt.add("/echo", Echo)
app.run(host='::', port=4433, certfile="cert.pem", keyfile="key.pem")

Installation

pip install http3x

🚀 Live Demo

Streaming AI-style responses over HTTP/3 (WebTransport):

You: hello

AI:
h
he
hel
hell
hello 👋

This is NOT WebSocket.
This is native HTTP/3 streaming over QUIC.

HTTP3X AI Streaming Demo

See demo/wt_demo.py and demo/wt_demo.html for the complete example.

⚡ Why not WebSocket?

Feature WebSocket http3x
Protocol TCP QUIC (HTTP/3)
Streams Single stream Multiplexed streams
Datagram No support Built-in datagram
Head-of-line blocking Yes No

Features

  • HTTP/3 server (QUIC-based)
  • WebTransport (stream + datagram)
  • Multiplexed streams (no head-of-line blocking)
  • Async/await API
  • Built on aioquic

Documentation

More docs coming soon.

Project Links

Contributing

Contributions are welcome! Please visit the GitHub repository to contribute code, report issues, or suggest features.

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

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

http3x-0.1.0.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

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

http3x-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file http3x-0.1.0.tar.gz.

File metadata

  • Download URL: http3x-0.1.0.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for http3x-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f63cab657296dd6df1565583d2e4817c7995fbc43600f742024e6573d7ecde1b
MD5 eb158131dbd1ba4c6d2a2823d69a1038
BLAKE2b-256 55c50daaa17e6a2a1f623d76aab80e65d809b7dcc487d7fda91b5b70aaeef99e

See more details on using hashes here.

File details

Details for the file http3x-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: http3x-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for http3x-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df79f2aa55c34581198fda688ebd43a3f7e399a4044adc499ed6d2d8a2700317
MD5 040b0b734291249a5266c65af23c1209
BLAKE2b-256 dee3d1164b5aacde9d6be38ea712e9ecd078963055017d665b493f27d6276b0d

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