Both `tokio::io` and `futures::io` are readiness-based IO which is not compatible with completion-based IO like `io_uring` and `IOCP`. For better performance on runtime like `io_uring`, OpenDAL support find a way to support completion based IO.