What is the core difference between asyncio and trio? : <p>Today, I found a library named <a href="http://trio.readthedocs.io/en/latest/index.html" rel="noreferrer">trio</a> which says itself is an asynchronous API for humans. These words are a little similar with <code>requests</code>'. As <code>requests</code> is really a good library, I am wondering what is the advantages of <code>trio</code>.</p>

<p>There aren't many articles about it, I just find an <a href="https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#the-curious-effectiveness-of-curio" rel="noreferrer">article</a> discussing <code>curio</code> and <code>asyncio</code>. To my surprise, <code>trio</code> says itself is even better than <code>curio</code>(next-generation curio).</p>

<p>After reading half of the article, I cannot find the core difference between these two asynchronous framework. It just gives some examples that <code>curio</code>'s implementation is more convenient than <code>asyncio</code>'s. But the underlying structure is almost the same(callback-based, I think all asynchronous IO framework are based on callback without any exception.)</p>

<p>So could someone give me a reason I have to accept that <code>trio</code> or <code>curio</code> is better than <code>asyncio</code>? Or explain more about why I should choose <code>trio</code> instead of built-in <code>asyncio</code>?</p>
