Hypercorn


NameHypercorn JSON
Version 0.16.0 PyPI version JSON
download
home_pagehttps://github.com/pgjones/hypercorn/
SummaryA ASGI Server based on Hyper libraries and inspired by Gunicorn
upload_time2024-01-01 14:00:46
maintainer
docs_urlNone
authorpgjones
requires_python>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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
<https://github.com/django/asgiref/blob/main/specs/asgi.rst>`_ and
WSGI web server based on the sans-io hyper, `h11
<https://github.com/python-hyper/h11>`_, `h2
<https://github.com/python-hyper/hyper-h2>`_, and `wsproto
<https://github.com/python-hyper/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
<https://github.com/aiortc/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
<https://github.com/pgjones/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
<https://docs.python.org/3/installing/index.html>`_,

.. 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
<https://hypercorn.readthedocs.io/en/latest/how_to_guides/api_usage.html>`_
docs.

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

Hypercorn is developed on `Github
<https://github.com/pgjones/hypercorn>`_. If you come across an issue,
or have a feature request please open an `issue
<https://github.com/pgjones/hypercorn/issues>`_.  If you want to
contribute a fix or the feature-implementation please do (typo fixes
welcome), by proposing a `pull request
<https://github.com/pgjones/hypercorn/merge_requests>`_.

Testing
~~~~~~~

The best way to test Hypercorn is with `Tox
<https://tox.readthedocs.io>`_,

.. code-block:: console

    $ pipenv install tox
    $ tox

this will check the code style and run the tests.

Help
----

The Hypercorn `documentation <https://hypercorn.readthedocs.io>`_ is
the best place to start, after that try searching stack overflow, if
you still can't find an answer please `open an issue
<https://github.com/pgjones/hypercorn/issues>`_.


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

.. |docs| image:: https://img.shields.io/badge/docs-passing-brightgreen.svg
   :target: https://hypercorn.readthedocs.io

.. |pypi| image:: https://img.shields.io/pypi/v/hypercorn.svg
   :target: https://pypi.python.org/pypi/Hypercorn/

.. |http| image:: https://img.shields.io/badge/http-1.0,1.1,2-orange.svg
   :target: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

.. |python| image:: https://img.shields.io/pypi/pyversions/hypercorn.svg
   :target: https://pypi.python.org/pypi/Hypercorn/

.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/pgjones/hypercorn/blob/main/LICENSE


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pgjones/hypercorn/",
    "name": "Hypercorn",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "pgjones",
    "author_email": "philip.graham.jones@googlemail.com",
    "download_url": "https://files.pythonhosted.org/packages/56/c4/8aeb5c33d73dc25244db5e2d72d0303bd7d9094d0da26844691e5942b4bf/hypercorn-0.16.0.tar.gz",
    "platform": null,
    "description": "Hypercorn\n=========\n\n.. image:: https://github.com/pgjones/hypercorn/raw/main/artwork/logo.png\n   :alt: Hypercorn logo\n\n|Build Status| |docs| |pypi| |http| |python| |license|\n\nHypercorn is an `ASGI\n<https://github.com/django/asgiref/blob/main/specs/asgi.rst>`_ and\nWSGI web server based on the sans-io hyper, `h11\n<https://github.com/python-hyper/h11>`_, `h2\n<https://github.com/python-hyper/hyper-h2>`_, and `wsproto\n<https://github.com/python-hyper/wsproto>`_ libraries and inspired by\nGunicorn. Hypercorn supports HTTP/1, HTTP/2, WebSockets (over HTTP/1\nand HTTP/2), ASGI, and WSGI specifications. Hypercorn can utilise\nasyncio, uvloop, or trio worker types.\n\nHypercorn can optionally serve the current draft of the HTTP/3\nspecification using the `aioquic\n<https://github.com/aiortc/aioquic/>`_ library. To enable this install\nthe ``h3`` optional extra, ``pip install hypercorn[h3]`` and then\nchoose a quic binding e.g. ``hypercorn --quic-bind localhost:4433\n...``.\n\nHypercorn was initially part of `Quart\n<https://github.com/pgjones/quart>`_ before being separated out into a\nstandalone server. Hypercorn forked from version 0.5.0 of Quart.\n\nQuickstart\n----------\n\nHypercorn can be installed via `pip\n<https://docs.python.org/3/installing/index.html>`_,\n\n.. code-block:: console\n\n    $ pip install hypercorn\n\nand requires Python 3.8 or higher.\n\nWith hypercorn installed ASGI frameworks (or apps) can be served via\nHypercorn via the command line,\n\n.. code-block:: console\n\n    $ hypercorn module:app\n\nAlternatively Hypercorn can be used programatically,\n\n.. code-block:: python\n\n    import asyncio\n    from hypercorn.config import Config\n    from hypercorn.asyncio import serve\n\n    from module import app\n\n    asyncio.run(serve(app, Config()))\n\nlearn more (including a Trio example of the above) in the `API usage\n<https://hypercorn.readthedocs.io/en/latest/how_to_guides/api_usage.html>`_\ndocs.\n\nContributing\n------------\n\nHypercorn is developed on `Github\n<https://github.com/pgjones/hypercorn>`_. If you come across an issue,\nor have a feature request please open an `issue\n<https://github.com/pgjones/hypercorn/issues>`_.  If you want to\ncontribute a fix or the feature-implementation please do (typo fixes\nwelcome), by proposing a `pull request\n<https://github.com/pgjones/hypercorn/merge_requests>`_.\n\nTesting\n~~~~~~~\n\nThe best way to test Hypercorn is with `Tox\n<https://tox.readthedocs.io>`_,\n\n.. code-block:: console\n\n    $ pipenv install tox\n    $ tox\n\nthis will check the code style and run the tests.\n\nHelp\n----\n\nThe Hypercorn `documentation <https://hypercorn.readthedocs.io>`_ is\nthe best place to start, after that try searching stack overflow, if\nyou still can't find an answer please `open an issue\n<https://github.com/pgjones/hypercorn/issues>`_.\n\n\n.. |Build Status| image:: https://github.com/pgjones/hypercorn/actions/workflows/ci.yml/badge.svg\n   :target: https://github.com/pgjones/hypercorn/commits/main\n\n.. |docs| image:: https://img.shields.io/badge/docs-passing-brightgreen.svg\n   :target: https://hypercorn.readthedocs.io\n\n.. |pypi| image:: https://img.shields.io/pypi/v/hypercorn.svg\n   :target: https://pypi.python.org/pypi/Hypercorn/\n\n.. |http| image:: https://img.shields.io/badge/http-1.0,1.1,2-orange.svg\n   :target: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol\n\n.. |python| image:: https://img.shields.io/pypi/pyversions/hypercorn.svg\n   :target: https://pypi.python.org/pypi/Hypercorn/\n\n.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg\n   :target: https://github.com/pgjones/hypercorn/blob/main/LICENSE\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A ASGI Server based on Hyper libraries and inspired by Gunicorn",
    "version": "0.16.0",
    "project_urls": {
        "Documentation": "https://hypercorn.readthedocs.io",
        "Homepage": "https://github.com/pgjones/hypercorn/",
        "Repository": "https://github.com/pgjones/hypercorn/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "179e700d764316399c20fbe8e98c6fff903b5d3f950043cc2fcbd0831a42c953",
                "md5": "a5a93faafe0c7a2ca5792afebe0ddfc8",
                "sha256": "929e45c4acde3fbf7c58edf55336d30a009d2b4cb1f1eb96e6a515d61b663f58"
            },
            "downloads": -1,
            "filename": "hypercorn-0.16.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a5a93faafe0c7a2ca5792afebe0ddfc8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 59859,
            "upload_time": "2024-01-01T14:00:44",
            "upload_time_iso_8601": "2024-01-01T14:00:44.765443Z",
            "url": "https://files.pythonhosted.org/packages/17/9e/700d764316399c20fbe8e98c6fff903b5d3f950043cc2fcbd0831a42c953/hypercorn-0.16.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "56c48aeb5c33d73dc25244db5e2d72d0303bd7d9094d0da26844691e5942b4bf",
                "md5": "b72ef47cb0cdbce25ab243add62d556b",
                "sha256": "3b17d1dcf4992c1f262d9f9dd799c374125d0b9a8e40e1e2d11e2938b0adfe03"
            },
            "downloads": -1,
            "filename": "hypercorn-0.16.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b72ef47cb0cdbce25ab243add62d556b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 42980,
            "upload_time": "2024-01-01T14:00:46",
            "upload_time_iso_8601": "2024-01-01T14:00:46.958000Z",
            "url": "https://files.pythonhosted.org/packages/56/c4/8aeb5c33d73dc25244db5e2d72d0303bd7d9094d0da26844691e5942b4bf/hypercorn-0.16.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-01 14:00:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pgjones",
    "github_project": "hypercorn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "hypercorn"
}
        
Elapsed time: 0.16703s