Name | Hypercorn JSON |
Version |
0.16.0
JSON |
| download |
home_page | https://github.com/pgjones/hypercorn/ |
Summary | A ASGI Server based on Hyper libraries and inspired by Gunicorn |
upload_time | 2024-01-01 14:00:46 |
maintainer | |
docs_url | None |
author | pgjones |
requires_python | >=3.8 |
license | MIT |
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"
}