Tide

Serve the web


Crates.io version Download docs.rs docs

API Docs | Contributing | Chat

A modular web framework built around async/await

Getting started

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

Example, use the version numbers you need

tide = "0.12.0" async-std = { version = "1.6.0", features = ["attributes"] } ```

Examples

Hello World

```rust

[async_std::main]

async fn main() -> Result<(), std::io::Error> { tide::log::start(); 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 sh $ 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.