, 9 tweets, 2 min read
My Authors
Read all threads
Rust friends. Lets talk about async-std and tokio. There is a (relatively) polite cold war happening, and I'm pretty sure it's bad for all of us. Tokio paved a ridiculous amount of ground in the rust/async ecosystem, and it's been on a steady climb of improvement.
Much of that has been driven by real-world usage, building high performance networking code. That means it exposes all the knobs and fiddly bits you need when you care about the details. It also means that, when you first start, the experience is sometimes overwhelming.
It is, however, pretty damn solid. It's also quite quick, and pays a lot of attention to the details of what happens when you're in production (things like tail latency, which matters a lot when your request gets the shitty tail, and not so much when it doesn't.)
Tokio feels very rusty to me. It exposes the cost of your decisions, lets you tweak where you need to. It's clearly good software.
Async-Std has a slightly different target, I suspect. It looks at the problem from the angle of "what will be easiest for the user" - which is not a bad angle. But making it easy like that means making trade-offs about the costs - there is no free UX lunch.
You'll have fewer knobs, fewer fiddly bits. Things like the "magic" blocking support - which sounds good, but in reality is likely to bite in weird ways if you put it under high stress (we see this in other ecosystems too - go and .net spring to mind)
Ultimately, these are two very different perspectives on what the experience of building async software on rust should be like. Right now, though, we are at risk of having the complex primitives they should share (so that you can have the ecosystem ride on top) splinter.
As a veteran of more than a few open source cold wars myself: resist the urge to have a war. It's expensive, it's bad for your users, and it hurts your hearts. Listen to each others expertise - both academic and real-world. Figure it out. There is plenty of niche for both.
In order for the consumers to win, neither Tokio nor Async-Std has to win. What they do have to do is agree on what the basic primitives are - and to do that, they're going to need to put aside the idea that one or the other should "win".
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Adam Jacob

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!