Creating the new project
Let's start by creating a new binary project, as usual:
cargo new --bin ftp-server
We'll add the following dependencies in the Cargo.toml
file:
[dependencies] bytes = "^0.4.5" tokio-core = "^0.1.10" tokio-io = "^0.1.3" [dependencies.futures-await] git = "https://github.com/alexcrichton/futures-await"
As you can see here, we specify a dependency via a Git URL. This dependency is using nightly-only features, so make sure you're using the nightly compiler by running this command:
rustup default nightly
Let's start our main
module by adding the required extern crate
statements:
#![feature(proc_macro, conservative_impl_trait, generators)] extern crate bytes; extern crate futures_await as futures; extern crate tokio_core; extern crate tokio_io;
As you can see, we're using some nightly features. These are needed by the futures-await
crate. We also decided to import this crate under another name, futures
, because it exports the same types and functions as the futures
crate itself...