| Nov |
DEC |
Jan |
|
19 |
|
| 2019 |
2020 |
2021 |
About this capture
The Wayback Machine - http://web.archive.org/web/20201219162532/https://github.com/python-trio/trio
Skip to content
/;ref_cta:Sign up;ref_loc:header logged out">
Sign up
●
Features →
●Code review
●Project management
●Integrations
●Actions
●Packages
●Security
●Team management
●Hosting
●Mobile
●Customer stories →
●Security →
●
●
●
●Explore GitHub →
Learn & contribute
●Topics
●Collections
●Trending
●Learning Lab
●Open source guides
Connect with others
●Events
●Community forum
●GitHub Education
●GitHub Stars program
●
●
Plans →
●Compare plans
●Contact Sales
●Nonprofit →
●Education →
In this repository
All GitHub
↵
Jump to
↵
-
No suggested jump to results
{{ message }}
●
Watch
92
●
Star
3.6k
●
Fork
211
Trio – a friendly Python library for async concurrency and I/O
trio.readthedocs.io
View license
3.6k
stars
211
forks
Star
Watch
●
Code
●
Issues
241
●
Pull requests
35
●
Actions
●
Projects
0
●
Wiki
●
Security
●
Insights
More
●
Code
●
Issues
●
Pull requests
●
Actions
●
Projects
●
Wiki
●
Security
●
Insights
8
branches
19
tags
Go to file
Code
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI.
Learn more.
●
Open with GitHub Desktop
●
Download ZIP
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio
If nothing happens, download the GitHub extension for Visual Studio and try again.
Latest commit
dependabot-preview
Merge pull request #1826 from python-trio/dependabot/pip/chardet-4.0.0
6a934fd
Dec 18, 2020
Merge pull request #1826 from python-trio/dependabot/pip/chardet-4.0.0
6a934fd
Git stats
●
3,732
commits
Files
Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
.builds
Employ builds.sr.ht for Alpine, Fedora and FreeBSD
Dec 6, 2020
.github/workflows
Retire obsolete distros on GitHub Actions & Travis
Dec 6, 2020
docs
" class="link-gray" href="/web/20201219162532/https://github.com/python-trio/trio/commit/d6b075afbbaa318af73f270f54e64be8700a4f15">add pyscalpel to awesome trio libraries (#1788" class="link-gray" href="/web/20201219162532/https://github.com/python-trio/trio/commit/d6b075afbbaa318af73f270f54e64be8700a4f15">)
Nov 3, 2020
logo
Add references to forum everywhere, and spruce up README a bit
Feb 7, 2019
newsfragments
Add news fragment
Nov 9, 2020
notes-to-self
First pass attempt at "guest mode"
May 27, 2020
trio
Cover MemoryReceiveChannel __enter__ and __exit__ in tests
Nov 9, 2020
.coveragerc
Make Trio pass 'mypy -m trio -m trio.testing'
Jul 1, 2020
.gitignore
[#1500]: Remove unused __all__ variables from Trio modules
May 13, 2020
.readthedocs.yml
Automatically run towncrier on RTD for in-development versions
May 16, 2020
.travis.yml
Retire obsolete distros on GitHub Actions & Travis
Dec 6, 2020
CODE_OF_CONDUCT.md
Add contributing doc, and switch to WeAllJS code of conduct
Dec 5, 2017
CONTRIBUTING.md
Add contributing doc, and switch to WeAllJS code of conduct
Dec 5, 2017
LICENSE
Consistently capitalize the word Trio
May 16, 2019
LICENSE.APACHE2
towards some kind of project layout
Jan 14, 2017
LICENSE.MIT
towards some kind of project layout
Jan 14, 2017
MANIFEST.in
Include CONTRIBUTING.md in sdists
Dec 5, 2017
README.rst
Stop using RawGit workaround
Jun 22, 2020
check.sh
Make Trio pass 'mypy -m trio -m trio.testing'
Jul 1, 2020
ci.sh
Employ builds.sr.ht for Alpine, Fedora and FreeBSD
Dec 6, 2020
docs-requirements.in
= 19.2.0 in more places" class="link-gray" href="/web/20201219162532/https://github.com/python-trio/trio/commit/45882339d27efa9e449474f22fee1b5668aea8ba">Require attrs >= 19.2.0 in more places
Oct 17, 2019
docs-requirements.txt
" class="link-gray" href="/web/20201219162532/https://github.com/python-trio/trio/commit/84c81eb53ce56ba9a7c2b42680a3f89594a5961a">Bump chardet from 3.0.4 to 4.0.0
Dec 18, 2020
mypy.ini
Make Trio pass 'mypy -m trio -m trio.testing'
Jul 1, 2020
pyproject.toml
Consistent capitalization
Jun 9, 2020
setup.cfg
Silence pytest junit_family warning
Apr 29, 2020
setup.py
Stop using RawGit URL in PyPI
Sep 15, 2020
test-requirements.in
Do not try installing mypy on PyPy
Jun 12, 2020
test-requirements.txt
" class="link-gray" href="/web/20201219162532/https://github.com/python-trio/trio/commit/8dcb3b4ba0650bfe80ec4bf75edc57aae0b308c8">Bump packaging from 20.7 to 20.8
Dec 16, 2020
README.rst





Trio – a friendly Python library for async concurrency and I/O
The Trio project's goal is to produce a production-quality,
permissively licensed,
async/await-native I/O library for Python. Like all async libraries,
its main purpose is to help you write programs that do multiple
things at the same time with parallelized I/O. A web spider that
wants to fetch lots of pages in parallel, a web server that needs to
juggle lots of downloads and websocket connections at the same time, a
process supervisor monitoring multiple subprocesses... that sort of
thing. Compared to other libraries, Trio attempts to distinguish
itself with an obsessive focus on usability and
correctness. Concurrency is complicated; we try to make it easy
to get things right.
Trio was built from the ground up to take advantage of the latest
Python features, and
draws inspiration from many sources, in
particular Dave Beazley's Curio.
The resulting design is radically simpler than older competitors like
asyncio and
Twisted, yet just as capable. Trio is
the Python I/O library I always wanted; I find it makes building
I/O-oriented programs easier, less error-prone, and just plain more
fun. Perhaps you'll find the same.
This project is young and still somewhat experimental: the overall
design is solid and the existing features are fully tested and
documented, but you may encounter missing functionality or rough
edges. We doencourage you to use it, but you should read and
subscribe to issue #1 to get warning and a
chance to give feedback about any compatibility-breaking changes.
Where to next?
I want to try it out! Awesome! We have a friendly tutorial to get you
started; no prior experience with async coding is required.
Ugh, I don't want to read all that – show me some code! If you're
impatient, then here's a simple concurrency example,
an echo client,
and an echo server.
How does Trio make programs easier to read and reason about than
competing approaches? Trio is based on a new way of thinking that we
call "structured concurrency". The best theoretical introduction is
the article Notes on structured concurrency, or: Go statement
considered harmful.
Or, check out this talk at PyCon 2018 to see a
demonstration of implementing the "Happy Eyeballs" algorithm in an
older library versus Trio.
Cool, but will it work on my system? Probably! As long as you have
some kind of Python 3.6-or-better (CPython or the latest PyPy3 are
both fine), and are using Linux, macOS, Windows, or FreeBSD, then Trio
should definitely work. Other environments might work too, but those
are the ones we test on. And all of our dependencies are pure Python,
except for CFFI on Windows, and that has wheels available, so
installation should be easy (no C compiler needed).
I tried it but it's not working. Sorry to hear that! You can try
asking for help in our chat roomorforum, filing a bug, or posting a
question on StackOverflow,
and we'll do our best to help you out.
Trio is awesome and I want to help make it more awesome! You're
the best! There's tons of work to do – filling in missing
functionality, building up an ecosystem of Trio-using libraries,
usability testing (e.g., maybe try teaching yourself or a friend to
use Trio and make a list of every error message you hit and place
where you got confused?), improving the docs, ... check out our guide
for contributors!
I don't have any immediate plans to use it, but I love geeking out
about I/O library design! That's a little weird? But let's be
honest, you'll fit in great around here. We have a whole sub-forum
for discussing structured concurrency (developers
of other systems welcome!). Or check out our discussion of design
choices,
reading list, and
issues tagged design-discussion.
I want to make sure my company's lawyers won't get angry at me! No
worries, Trio is permissively licensed under your choice of MIT or
Apache 2. See LICENSE for details.
Code of conduct
Contributors are requested to follow our code of conduct in all
project spaces.
About
Trio – a friendly Python library for async concurrency and I/O
trio.readthedocs.io
Topics
python
async
async-await
networking
io
trio
structured-concurrency
Resources
Readme
License
View license
19
tags
No packages published
+ 590
+ 89 contributors
Languages
●
Python
99.3%
●
Shell
0.7%
●© 2020 GitHub, Inc.
●Terms
●Privacy
●Security
●Status
●Help
●Contact GitHub
●Pricing
●API
●Training
●Blog
●About
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.