anthropics/hypercorn
forked from pgjones/hypercorn
Captured source
source ↗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