If you don't have Rust yet, we recommend you use
rustup to manage your Rust installation. The official rust guide has a wonderful section on getting started.
Actix Web currently has a minimum supported Rust version (MSRV) of 1.59. Running
rustup update will ensure you have the latest and greatest Rust version available. As such, this guide assumes you are running Rust 1.59 or later.
Start by creating a new binary-based Cargo project and changing into the new directory:
cargo new hello-world
actix-web as a dependency of your project by adding the following to your
actix-web = "4"
Request handlers use async functions that accept zero or more parameters. These parameters can be extracted from a request (see
FromRequest trait) and returns a type that can be converted into an
Replace the contents of
src/main.rs with the following:
Notice that some of these handlers have routing information attached directly using the built-in macros. These allow you to specify the method and path that the handler should respond to. You will see below how to register
manual_hello (i.e. routes that do not use a routing macro).
Next, create an
App instance and register the request handlers. Use
App::service for the handlers using routing macros and
App::route for manually routed handlers, declaring the path and method. Finally, the app is started inside an
HttpServer which will serve incoming requests using your
App as an "application factory".
Further append the following
main function to
That's it! Compile and run the program with
cargo run. The
#[actix_web::main] macro executes the async main function within the actix runtime. Now you can go to
http://127.0.0.1:8080/ or any of the other routes you defined to see the results.