API Docs | Contributing | Chat
A modular web framework built around async/await. It's actively being developed and not ready for production yet.
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"] }
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
Tide's default backend currently does not support TLS, and only supports HTTP/1.1.
In order to use nginx as reverse proxy for Tide, your upstream proxy configuration must include this line:
proxy_http_version 1.1;
Read about the design here:
- Rising Tide: building a modular web framework in the open
- Routing and extraction in Tide: a first sketch
- Middleware in Tide
- Tide's evolving middleware approach
- Tide, the present and future of
- Tide channels
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
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
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.