The issue is that the async await keywords are part of the standard language but then you are forced to pick an non-standard runtime.
Your Go example is not quite comparable:
Go: (Lang, libs)
- You can mix and match any libraries.
Rust: (Lang, runtime, libs)
- Now you can only choose the libraries for your runtime. This dilutes the time investment of crate developers and the utility of Cargo crates, as you want a general async thing but it is tied to a specific runtime.
I think the Rust team should of included a solid zero config runtime but allow it to be replaced.