ForkAnthropicAnthropicpublished May 18, 2023seen 6d

anthropics/hypercorn

forked from pgjones/hypercorn

Open original ↗

Captured source

source ↗
published May 18, 2023seen 6dcaptured 9hhttp 200method plain

anthropics/hypercorn

Description: Hypercorn is an ASGI and WSGI Server based on Hyper libraries and inspired by Gunicorn.

Language: Python

License: MIT

Stars: 19

Forks: 5

Open issues: 1

Created: 2023-05-18T22:36:37Z

Pushed: 2026-01-12T17:07:30Z

Default branch: main

Fork: yes

Parent repository: pgjones/hypercorn

Archived: no

README: Hypercorn =========

.. image:: https://github.com/pgjones/hypercorn/raw/main/artwork/logo.png :alt: Hypercorn logo

|Build Status| |docs| |pypi| |http| |python| |license|

Hypercorn is an ASGI _ and WSGI web server based on the sans-io hyper, h11 _, h2 _, and wsproto _ libraries and inspired by Gunicorn. Hypercorn supports HTTP/1, HTTP/2, WebSockets (over HTTP/1 and HTTP/2), ASGI, and WSGI specifications. Hypercorn can utilise asyncio, uvloop, or trio worker types.

Hypercorn can optionally serve the current draft of the HTTP/3 specification using the aioquic _ library. To enable this install the `h3 optional extra, pip install hypercorn[h3] and then choose a quic binding e.g. hypercorn --quic-bind localhost:4433 ...`.

Hypercorn was initially part of Quart _ before being separated out into a standalone server. Hypercorn forked from version 0.5.0 of Quart.

Quickstart ----------

Hypercorn can be installed via pip _,

.. code-block:: console

$ pip install hypercorn

and requires Python 3.8 or higher.

With hypercorn installed ASGI frameworks (or apps) can be served via Hypercorn via the command line,

.. code-block:: console

$ hypercorn module:app

Alternatively Hypercorn can be used programatically,

.. code-block:: python

import asyncio from hypercorn.config import Config from hypercorn.asyncio import serve

from module import app

asyncio.run(serve(app, Config()))

learn more (including a Trio example of the above) in the API usage _ docs.

Contributing ------------

Hypercorn is developed on Github _. If you come across an issue, or have a feature request please open an issue _. If you want to contribute a fix or the feature-implementation please do (typo fixes welcome), by proposing a pull request _.

Testing ~~~~~~~

The best way to test Hypercorn is with Tox _,

.. code-block:: console

$ pipenv install tox $ tox

this will check the code style and run the tests.

Help ----

The Hypercorn documentation _ is the best place to start, after that try searching stack overflow, if you still can't find an answer please open an issue _.

.. |Build Status| image:: https://github.com/pgjones/hypercorn/actions/workflows/ci.yml/badge.svg :target: https://github.com/pgjones/hypercorn/commits/main

:target: https://hypercorn.readthedocs.io

:target: https://pypi.python.org/pypi/Hypercorn/

:target: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

:target: https://pypi.python.org/pypi/Hypercorn/

:target: https://github.com/pgjones/hypercorn/blob/main/LICENSE