diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/uvicorn-0.29.0.dist-info/METADATA')
-rw-r--r-- | venv/lib/python3.11/site-packages/uvicorn-0.29.0.dist-info/METADATA | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.29.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/uvicorn-0.29.0.dist-info/METADATA deleted file mode 100644 index 43db9e5..0000000 --- a/venv/lib/python3.11/site-packages/uvicorn-0.29.0.dist-info/METADATA +++ /dev/null @@ -1,181 +0,0 @@ -Metadata-Version: 2.3 -Name: uvicorn -Version: 0.29.0 -Summary: The lightning-fast ASGI server. -Project-URL: Changelog, https://github.com/encode/uvicorn/blob/master/CHANGELOG.md -Project-URL: Funding, https://github.com/sponsors/encode -Project-URL: Homepage, https://www.uvicorn.org/ -Project-URL: Source, https://github.com/encode/uvicorn -Author-email: Tom Christie <tom@tomchristie.com> -License-Expression: BSD-3-Clause -License-File: LICENSE.md -Classifier: Development Status :: 4 - Beta -Classifier: Environment :: Web Environment -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Internet :: WWW/HTTP -Requires-Python: >=3.8 -Requires-Dist: click>=7.0 -Requires-Dist: h11>=0.8 -Requires-Dist: typing-extensions>=4.0; python_version < '3.11' -Provides-Extra: standard -Requires-Dist: colorama>=0.4; (sys_platform == 'win32') and extra == 'standard' -Requires-Dist: httptools>=0.5.0; extra == 'standard' -Requires-Dist: python-dotenv>=0.13; extra == 'standard' -Requires-Dist: pyyaml>=5.1; extra == 'standard' -Requires-Dist: uvloop!=0.15.0,!=0.15.1,>=0.14.0; (sys_platform != 'win32' and (sys_platform != 'cygwin' and platform_python_implementation != 'PyPy')) and extra == 'standard' -Requires-Dist: watchfiles>=0.13; extra == 'standard' -Requires-Dist: websockets>=10.4; extra == 'standard' -Description-Content-Type: text/markdown - -<p align="center"> - <img width="320" height="320" src="https://raw.githubusercontent.com/tomchristie/uvicorn/master/docs/uvicorn.png" alt='uvicorn'> -</p> - -<p align="center"> -<em>An ASGI web server, for Python.</em> -</p> - ---- - -[![Build Status](https://github.com/encode/uvicorn/workflows/Test%20Suite/badge.svg)](https://github.com/encode/uvicorn/actions) -[![Package version](https://badge.fury.io/py/uvicorn.svg)](https://pypi.python.org/pypi/uvicorn) -[![Supported Python Version](https://img.shields.io/pypi/pyversions/uvicorn.svg?color=%2334D058)](https://pypi.org/project/uvicorn) - -**Documentation**: [https://www.uvicorn.org](https://www.uvicorn.org) - ---- - -Uvicorn is an ASGI web server implementation for Python. - -Until recently Python has lacked a minimal low-level server/application interface for -async frameworks. The [ASGI specification][asgi] fills this gap, and means we're now able to -start building a common set of tooling usable across all async frameworks. - -Uvicorn supports HTTP/1.1 and WebSockets. - -## Quickstart - -Install using `pip`: - -```shell -$ pip install uvicorn -``` - -This will install uvicorn with minimal (pure Python) dependencies. - -```shell -$ 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 `watchfiles`. -- 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`: - -```python -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: - -```shell -$ uvicorn example:app -``` - ---- - -## Why ASGI? - -Most well established Python Web frameworks started out as WSGI-based frameworks. - -WSGI applications are a single, synchronous callable that takes a request and returns a response. -This doesn’t allow for long-lived connections, like you get with long-poll HTTP or WebSocket connections, -which WSGI doesn't support well. - -Having an async concurrency model also allows for options such as lightweight background tasks, -and can be less of a limiting factor for endpoints that have long periods being blocked on network -I/O such as dealing with slow HTTP requests. - ---- - -## Alternative ASGI servers - -A strength of the ASGI protocol is that it decouples the server implementation -from the application framework. This allows for an ecosystem of interoperating -webservers and application frameworks. - -### Daphne - -The first ASGI server implementation, originally developed to power Django Channels, is [the Daphne webserver][daphne]. - -It is run widely in production, and supports HTTP/1.1, HTTP/2, and WebSockets. - -Any of the example applications given here can equally well be run using `daphne` instead. - -``` -$ pip install daphne -$ daphne app:App -``` - -### Hypercorn - -[Hypercorn][hypercorn] was initially part of the Quart web framework, before -being separated out into a standalone ASGI server. - -Hypercorn supports HTTP/1.1, HTTP/2, and WebSockets. - -It also supports [the excellent `trio` async framework][trio], as an alternative to `asyncio`. - -``` -$ pip install hypercorn -$ hypercorn app:App -``` - -### Mangum - -[Mangum][mangum] is an adapter for using ASGI applications with AWS Lambda & API Gateway. - ---- - -<p align="center"><i>Uvicorn is <a href="https://github.com/encode/uvicorn/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>— 🦄 —</p> - -[asgi]: https://asgi.readthedocs.io/en/latest/ -[daphne]: https://github.com/django/daphne -[hypercorn]: https://github.com/pgjones/hypercorn -[mangum]: https://mangum.io -[trio]: https://trio.readthedocs.io |