1
0
mirror of https://github.com/actix/actix-website synced 2024-11-30 19:14:36 +01:00
actix-website/content/docs/getting-started.md
2021-03-31 22:54:44 +09:00

2.2 KiB

title menu weight
Getting Started docs_basics 130

Installing Rust

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 {{< rust-version "actix-web" >}}. Running rustup update will ensure you have the latest and greatest Rust version available. As such, this guide assumes you are running Rust {{< rust-version "actix-web" >}} or later.

Hello, world!

Start by creating a new binary-based Cargo project and changing into the new directory:

cargo new hello-world
cd hello-world

Add actix-web as a dependency of your project by adding the following to your Cargo.toml file.

[dependencies]
actix-web = "{{< actix-version "actix-web" >}}"

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 HttpResponse (see Responder trait):

{{< include-example example="getting-started" section="handlers" >}}

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".

{{< include-example example="getting-started" section="main" >}}

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.