All Projects β†’ encode β†’ Uvicorn

encode / Uvicorn

Licence: bsd-3-clause
The lightning-fast ASGI server. πŸ¦„

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Uvicorn

Chili
Chili: HTTP Served Hot
Stars: ✭ 7 (-99.85%)
Mutual labels:  asyncio, http-server
Hypercorn
Official mirror of https://gitlab.com/pgjones/hypercorn https://pgjones.gitlab.io/hypercorn/
Stars: ✭ 193 (-95.87%)
Mutual labels:  asyncio, http-server
Quart
Official mirror of https://gitlab.com/pgjones/quart
Stars: ✭ 872 (-81.35%)
Mutual labels:  asyncio, http-server
Httpserver
Python 3 implementation of an HTTP server
Stars: ✭ 5 (-99.89%)
Mutual labels:  asyncio, http-server
stream video server
demonstrates how to create video streaming server with the help of aiohttp and opencv
Stars: ✭ 15 (-99.68%)
Mutual labels:  http-server, asyncio
Aiohttp
Asynchronous HTTP client/server framework for asyncio and Python
Stars: ✭ 11,972 (+156.03%)
Mutual labels:  asyncio, http-server
Pulsar
Event driven concurrent framework for Python
Stars: ✭ 1,867 (-60.07%)
Mutual labels:  asyncio, http-server
Sanic
Async Python 3.7+ web server/framework | Build fast. Run fast.
Stars: ✭ 15,660 (+234.9%)
Mutual labels:  asyncio, asgi
fastapi-azure-auth
Easy and secure implementation of Azure AD for your FastAPI APIs πŸ”’ B2C, single- and multi-tenant support.
Stars: ✭ 174 (-96.28%)
Mutual labels:  asyncio, asgi
waspy
WASP framework for Python
Stars: ✭ 43 (-99.08%)
Mutual labels:  http-server, asyncio
aioprometheus
A Prometheus Python client library for asyncio-based applications
Stars: ✭ 114 (-97.56%)
Mutual labels:  asyncio, asgi
nardis
A small web framework based on ASGI
Stars: ✭ 14 (-99.7%)
Mutual labels:  asyncio, asgi
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 (-99.62%)
Mutual labels:  asyncio, asgi
Example Hftish
Example Order Book Imbalance Algorithm
Stars: ✭ 355 (-92.41%)
Mutual labels:  asyncio
Nodemcu Httpserver
A (very) simple web server written in Lua for the ESP8266 firmware NodeMCU.
Stars: ✭ 369 (-92.11%)
Mutual labels:  http-server
Micropython Async
Application of uasyncio to hardware interfaces. Tutorial and code.
Stars: ✭ 348 (-92.56%)
Mutual labels:  asyncio
Cppwebframework
​The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.
Stars: ✭ 348 (-92.56%)
Mutual labels:  http-server
Lahja
Lahja is a generic multi process event bus implementation written in Python 3.6+ to enable lightweight inter-process communication, based on non-blocking asyncio
Stars: ✭ 374 (-92%)
Mutual labels:  asyncio
Go Safeweb
Secure-by-default HTTP servers in Go.
Stars: ✭ 366 (-92.17%)
Mutual labels:  http-server
Graphql Core
A Python 3.6+ port of the GraphQL.js reference implementation of GraphQL.
Stars: ✭ 344 (-92.64%)
Mutual labels:  asyncio

uvicorn

The lightning-fast ASGI server.


Build Status Package version

Documentation: https://www.uvicorn.org

Requirements: Python 3.6+ (For Python 3.5 support, install version 0.8.6.)

Uvicorn is a lightning-fast ASGI server implementation, using uvloop and httptools.

Until recently Python has lacked a minimal low-level server/application interface for asyncio frameworks. The ASGI specification fills this gap, and means we're now able to start building a common set of tooling usable across all asyncio frameworks.

Uvicorn currently supports HTTP/1.1 and WebSockets. Support for HTTP/2 is planned.

Quickstart

Install using pip:

$ pip install uvicorn

This will install uvicorn with minimal (pure Python) dependencies.

$ pip install uvicorn[standard]

This will install uvicorn with "Cython-based" dependencies (where possible) and other "optional extras".

In this context, "Cython-based" means the following:

  • the event loop uvloop will be installed and used if possible.
  • the http protocol will be handled by httptools if possible.

Moreover, "optional extras" means that:

  • the websocket protocol will be handled by websockets (should you want to use wsproto you'd need to install it manually) if possible.
  • the --reload flag in development mode will use watchgod.
  • windows users will have colorama installed for the colored logs.
  • python-dotenv will be installed should you want to use the --env-file option.
  • PyYAML will be installed to allow you to provide a .yaml file to --log-config, if desired.

Create an application, in example.py:

async def app(scope, receive, send):
    assert scope['type'] == 'http'

    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ],
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })

Run the server:

$ uvicorn example:app

Uvicorn is BSD licensed code.
Designed & built in Brighton, England.

β€” πŸ¦„ β€”

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].