What problem does this PR solve?
- Brief description of the problem:
To implement the Raft protocol we need to perform many asynchronous operations, such as spawning background tasks, selecting from some futures, and timeouts.
However, currently labrpc crate uses futures-rs 0.1, which causes learners to also use hard-to-use combinators from futures-rs 0.1.
This PR updates it's version to 0.3, so we can use async/await feature and focus on Raft itself.
What is changed and how it works?
-
In
dss/labrpc, most of the code was migrated tofutures 0.3. -
Server::dispatch()andClient::call()returnsBoxFutureinstead of being a regularasyncfunction, due to limitation of rust issue #63303.
Check List
Tests
- Unit test