#tide #http #web #framework #async


A minimal and pragmatic Rust web application framework built for rapid development

25 releases (16 breaking)

0.16.0 Jan 29, 2021
0.15.0 Nov 13, 2020
0.13.0 Jul 31, 2020
0.6.0 Jan 30, 2020
0.0.0 Aug 10, 2018

#6 in HTTP server

Download history 3080/week @ 2020-11-13 4263/week @ 2020-11-20 5041/week @ 2020-11-27 4840/week @ 2020-12-04 3799/week @ 2020-12-11 3870/week @ 2020-12-18 2447/week @ 2020-12-25 3839/week @ 2021-01-01 6197/week @ 2021-01-08 5306/week @ 2021-01-15 6429/week @ 2021-01-22 6346/week @ 2021-01-29 6397/week @ 2021-02-05 5991/week @ 2021-02-12 6104/week @ 2021-02-19 4546/week @ 2021-02-26

18,497 downloads per month
Used in 76 crates (71 directly)




Serve the web

Tide is a minimal and pragmatic Rust web application framework built for rapid development. It comes with a robust set of features that make building async web applications and APIs easier and more fun.

Getting started

In order to build a web app in Rust you need an HTTP server, and an async runtime. After running cargo init add the following lines to your Cargo.toml file:

# Example, use the version numbers you need
tide = "0.15.0"
async-std = { version = "1.8.0", features = ["attributes"] }
serde = { version = "1.0", features = ["derive"] }


Create an HTTP server that receives a JSON body, validates it, and responds with a confirmation message.

use tide::Request;
use tide::prelude::*;

#[derive(Debug, Deserialize)]
struct Animal {
    name: String,
    legs: u8,

async fn main() -> tide::Result<()> {
    let mut app = tide::new();

async fn order_shoes(mut req: Request<()>) -> tide::Result {
    let Animal { name, legs } = req.body_json().await?;
    Ok(format!("Hello, {}! I've put in an order for {} shoes", name, legs).into())
$ curl localhost:8080/orders/shoes -d '{ "name": "Chashu", "legs": 4 }'
Hello, Chashu! I've put in an order for 4 shoes

$ curl localhost:8080/orders/shoes -d '{ "name": "Mary Millipede", "legs": 750 }'
number too large to fit in target type

See more examples in the examples directory.

Tide's design:

Community Resources

To add a link to this list, edit the markdown file and submit a pull request (github login required)
Listing here does not constitute an endorsement or recommendation from the tide team. Use at your own risk.


Template engines





Session Stores

Example applications


Want to join us? Check out our The "Contributing" section of the guide and take a look at some of these issues:


The Tide project adheres to the Contributor Covenant Code of Conduct. This describes the minimum behavior expected from all contributors.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~199K SLoC