> and I don't understand the relationship of Tokio and the language's async/await syntax.
One of the surprising things with rust here, is that it define only the syntax and some bare traits AND ALLOW TO PLUG ANY RUNTIME.
This mean you can "swap" runtime implementations and even build your own.
One recent example is:
https://www.reddit.com/r/rust/comments/g917ad/smol_stjepang_...
This is in contrast with Go/Erlang/.NET, etc where the runtime for it is made for you, but can't be changed. This is cool where things are mostly fine all the time, but rust being a SYSTEM lang allow this is neat (example: Embebed scenarios where a regular runtime is too heavy).
Note: This template show in other places, where for example you can swap the allocator or the (default) hash function.