All Projects → pgjones → Hypercorn

pgjones / Hypercorn

Licence: mit
Official mirror of https://gitlab.com/pgjones/hypercorn https://pgjones.gitlab.io/hypercorn/

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Hypercorn

Httpserver
Python 3 implementation of an HTTP server
Stars: ✭ 5 (-97.41%)
Mutual labels:  asyncio, http-server
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-77.72%)
Mutual labels:  http2, http-server
Farwest
Framework for building RESTful HATEOAS-driven applications.
Stars: ✭ 18 (-90.67%)
Mutual labels:  http2, http-server
Uvicorn
The lightning-fast ASGI server. 🦄
Stars: ✭ 4,676 (+2322.8%)
Mutual labels:  asyncio, http-server
Netius
Readable, simple and fast asynchronous non-blocking network apps
Stars: ✭ 114 (-40.93%)
Mutual labels:  asyncio, http2
Python Proxy
HTTP/HTTP2/HTTP3/Socks4/Socks5/Shadowsocks/ShadowsocksR/SSH/Redirect/Pf TCP/UDP asynchronous tunnel proxy implemented in Python 3 asyncio.
Stars: ✭ 692 (+258.55%)
Mutual labels:  asyncio, http2
Quart
Official mirror of https://gitlab.com/pgjones/quart
Stars: ✭ 872 (+351.81%)
Mutual labels:  asyncio, http-server
Http
Host These Things Please - a basic http server for hosting a folder fast and simply
Stars: ✭ 275 (+42.49%)
Mutual labels:  http2, http-server
Restbed
Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.
Stars: ✭ 1,551 (+703.63%)
Mutual labels:  http2, http-server
Violetear
Go HTTP router
Stars: ✭ 100 (-48.19%)
Mutual labels:  http2, http-server
Jetty.project
Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Stars: ✭ 3,260 (+1589.12%)
Mutual labels:  http2, http-server
Aiohttp
Asynchronous HTTP client/server framework for asyncio and Python
Stars: ✭ 11,972 (+6103.11%)
Mutual labels:  asyncio, http-server
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+1657.51%)
Mutual labels:  http2, http-server
Cowboy
Small, fast, modern HTTP server for Erlang/OTP.
Stars: ✭ 6,533 (+3284.97%)
Mutual labels:  http2, http-server
Firefly
Firefly is an asynchronous web framework for rapid development of high-performance web application.
Stars: ✭ 277 (+43.52%)
Mutual labels:  http2, http-server
Chili
Chili: HTTP Served Hot
Stars: ✭ 7 (-96.37%)
Mutual labels:  asyncio, http-server
hypercorn-fastapi-docker
Docker image with Hypercorn for FastAPI apps in Python 3.7, 3.8, 3.9. Ready for HTTP2 and HTTPS
Stars: ✭ 18 (-90.67%)
Mutual labels:  http2, asyncio
static-web-server
A blazing fast and asynchronous web server for static files-serving. ⚡
Stars: ✭ 230 (+19.17%)
Mutual labels:  http2, http-server
Akka Http
The Streaming-first HTTP server/module of Akka
Stars: ✭ 1,163 (+502.59%)
Mutual labels:  http2, http-server
Raxx kit
Get started with Raxx + Elixir
Stars: ✭ 120 (-37.82%)
Mutual labels:  http2, http-server

Hypercorn

.. image:: https://assets.gitlab-static.net/pgjones/hypercorn/raw/master/artwork/logo.png :alt: Hypercorn logo

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

Hypercorn is an ASGI <https://github.com/django/asgiref/blob/master/specs/asgi.rst>_ 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/2, and ASGI/3 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://gitlab.com/pgjones/quart>_ before being separated out into a standalone ASGI 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.7.0 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://pgjones.gitlab.io/hypercorn/how_to_guides/api_usage.html>_ docs.

Contributing

Hypercorn is developed on GitLab <https://gitlab.com/pgjones/hypercorn>. If you come across an issue, or have a feature request please open an issue <https://gitlab.com/pgjones/hypercorn/issues>. If you want to contribute a fix or the feature-implementation please do (typo fixes welcome), by proposing a merge request <https://gitlab.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://pgjones.gitlab.io/hypercorn/>`_
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://gitlab.com/pgjones/hypercorn/issues>`_.


.. |Build Status| image:: https://gitlab.com/pgjones/hypercorn/badges/master/pipeline.svg
   :target: https://gitlab.com/pgjones/hypercorn/commits/master

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

.. |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://gitlab.com/pgjones/hypercorn/blob/master/LICENSE
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].