I recently switched from old sync versions of hyper and postgres to the new async versions. [1]
It wasn't hard, but yeah it was not fun either.
I can only imagine it's worse if you're actually writing the libraries and not just a CRUD app like I am
[1] Apparently the postgres crate was a wrapper around tokio_postgres all along and I didn't notice. So to remove a dependency I switched to using tokio_postgres directly