It exports stdlib types (like io::Error) where appropriate so that libraries working with these can stay compatible, so `no_std` is not really an option.
The underlying library (async-task) is essentially core + liballoc, just no one made the effort to spell that out, yet.
I would love to see a lint for known-blocking constructs in async contexts, though: https://github.com/rust-lang/rust-clippy/issues/4377
Also, having explicit imports and types that name collide helps there for once.
I meant: is that a real thing? Is there a database binding out on crates.io that uses no_std ?
That gap might close, but it will stay with us for years.
Excellent, good to know!
It would be nice if you could provide your own sys crate so you could even use some of std on an embedded device. If you had say an RTC you could make time related calls work, maybe you'd wire networking to smoltcp etc. Currently you could do that - maybe - but you'd have to modify the Rust standard library.
But that plan is severely understaffed, we go so much else to do.