19 releases (11 breaking)

✓ Uses Rust 2018 edition

0.11.0 Jun 12, 2020
0.9.0 May 23, 2020
0.6.0 Jan 30, 2020
0.5.1 Dec 20, 2019
0.0.0 Aug 10, 2018

#6 in HTTP server

Download history 1096/week @ 2020-03-16 1266/week @ 2020-03-23 1789/week @ 2020-03-30 1445/week @ 2020-04-06 2003/week @ 2020-04-13 1913/week @ 2020-04-20 2941/week @ 2020-04-27 2052/week @ 2020-05-04 2838/week @ 2020-05-11 2013/week @ 2020-05-18 3490/week @ 2020-05-25 2608/week @ 2020-06-01 2259/week @ 2020-06-08 2771/week @ 2020-06-15 2244/week @ 2020-06-22 3838/week @ 2020-06-29

9,188 downloads per month
Used in 29 crates (27 directly)

MIT/Apache and maybe MPL-2.0

110KB
2K SLoC

Tide

Serve the web

A modular web framework built around async/await. It's actively being developed and not ready for production yet.

Getting started

Add two dependencies to your project's Cargo.toml file: tide itself, and async-std with the feature attributes enabled:

# Example, use the version numbers you need
tide = "0.8.0"
async-std = { version = "1.5.0", features = ["attributes"] }

Examples

Hello World

#[async_std::main]
async fn main() -> Result<(), std::io::Error> {
    let mut app = tide::new();
    app.at("/").get(|_| async { Ok("Hello, world!") });
    app.listen("127.0.0.1:8080").await?;
    Ok(())
}

To try the included examples, check out this repository and run

$ cargo run --example # shows a list of available examples
$ cargo run --example hello

TLS termination and reverse proxies

Tide's default backend currently does not support TLS, and only supports HTTP/1.1.

To use with nginx

In order to use nginx as reverse proxy for Tide, your upstream proxy configuration must include this line:

proxy_http_version 1.1;

Resources

Read about the design here:

Contributing

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

Conduct

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

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~6.5–9MB
~166K SLoC