Awesome Trio Libraries¶
You have completed the tutorial, and are enthusiastic about building
great new applications and libraries with async functionality.
However, to get much useful work done you will want to use some of
the great libraries that support Trio-flavoured concurrency. This list
is not complete, but gives a starting point. Another great way to find
Trio-compatible libraries is to search on PyPI for the
Framework :: Trio
tag -> PyPI Search
cookiecutter-trio - This is a cookiecutter template for Python projects that use Trio. It makes it easy to start a new project, by providing a bunch of preconfigured boilerplate.
pytest-trio - Pytest plugin to test async-enabled Trio functions.
sphinxcontrib-trio - Make Sphinx better at documenting Python functions and methods. In particular, it makes it easy to document async functions.
Web and HTML¶
asks - asks is an async requests-like http library.
trio-websocket - This library implements the WebSocket protocol, striving for safety, correctness, and ergonomics.
quart-trio - Like Flask, but for Trio. A simple and powerful framework for building async web applications and REST APIs. Tip: this is an ASGI-based framework, so you’ll also need an HTTP server with ASGI support.
hypercorn - An HTTP server for hosting your ASGI apps. Supports HTTP/1.1, HTTP/2, HTTP/3, and Websockets. Can be run as a standalone server, or embedded in a larger Trio app. Use it with
quart-trio, or any other Trio-compatible ASGI framework.
httpx - HTTPX is a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2.
Building Command Line Apps¶
Tools and Utilities¶
anyio - AnyIO is a asynchronous compatibility API that allows applications and libraries written against it to run unmodified on asyncio, curio and trio.
sniffio - This is a tiny package whose only purpose is to let you detect which async library your code is running under.
trio-asyncio - Trio-Asyncio lets you use many asyncio libraries from your Trio app.