• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H22-Nov-2021-118110

docs/H22-Nov-2021-2,8822,051

src/H22-Nov-2021-8,1016,022

tests/H22-Nov-2021-5,9744,606

.gitignoreH A D22-Nov-2021171 1817

.readthedocs.ymlH A D22-Nov-2021143 98

LICENSEH A D22-Nov-20211.1 KiB2116

PKG-INFOH A D22-Nov-20213.5 KiB8873

README.rstH A D22-Nov-20212.5 KiB5846

pre-commit-config.sample.yamlH A D22-Nov-2021699 2524

pyproject.tomlH A D22-Nov-20211.4 KiB5546

setup.cfgH A D22-Nov-20211.7 KiB6759

setup.pyH A D22-Nov-2021103 75

tox.iniH A D22-Nov-2021911 4336

README.rst

1.. image:: https://github.com/agronholm/anyio/workflows/Python%20codeqa/test/badge.svg?branch=master
2  :target: https://github.com/agronholm/anyio/actions?query=workflow%3A%22Python+codeqa%2Ftest%22+branch%3Amaster
3  :alt: Build Status
4.. image:: https://coveralls.io/repos/github/agronholm/anyio/badge.svg?branch=master
5  :target: https://coveralls.io/github/agronholm/anyio?branch=master
6  :alt: Code Coverage
7.. image:: https://readthedocs.org/projects/anyio/badge/?version=latest
8  :target: https://anyio.readthedocs.io/en/latest/?badge=latest
9  :alt: Documentation
10.. image:: https://badges.gitter.im/gitterHQ/gitter.svg
11  :target: https://gitter.im/python-trio/AnyIO
12  :alt: Gitter chat
13
14AnyIO is an asynchronous networking and concurrency library that works on top of either asyncio_ or
15trio_. It implements trio-like `structured concurrency`_ (SC) on top of asyncio, and works in harmony
16with the native SC of trio itself.
17
18Applications and libraries written against AnyIO's API will run unmodified on either asyncio_ or
19trio_. AnyIO can also be adopted into a library or application incrementally – bit by bit, no full
20refactoring necessary. It will blend in with native libraries of your chosen backend.
21
22Documentation
23-------------
24
25View full documentation at: https://anyio.readthedocs.io/
26
27Features
28--------
29
30AnyIO offers the following functionality:
31
32* Task groups (nurseries_ in trio terminology)
33* High level networking (TCP, UDP and UNIX sockets)
34
35  * `Happy eyeballs`_ algorithm for TCP connections (more robust than that of asyncio on Python
36    3.8)
37  * async/await style UDP sockets (unlike asyncio where you still have to use Transports and
38    Protocols)
39
40* A versatile API for byte streams and object streams
41* Inter-task synchronization and communication (locks, conditions, events, semaphores, object
42  streams)
43* Worker threads
44* Subprocesses
45* Asynchronous file I/O (using worker threads)
46* Signal handling
47
48AnyIO also comes with its own pytest_ plugin which also supports asynchronous fixtures.
49It even works with the popular Hypothesis_ library.
50
51.. _asyncio: https://docs.python.org/3/library/asyncio.html
52.. _trio: https://github.com/python-trio/trio
53.. _structured concurrency: https://en.wikipedia.org/wiki/Structured_concurrency
54.. _nurseries: https://trio.readthedocs.io/en/stable/reference-core.html#nurseries-and-spawning
55.. _Happy eyeballs: https://en.wikipedia.org/wiki/Happy_Eyeballs
56.. _pytest: https://docs.pytest.org/en/latest/
57.. _Hypothesis: https://hypothesis.works/
58