[−][src]Crate tide
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.14.0"
async-std = { version = "1.6.0", features = ["attributes"] }
Examples
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_std::main] async fn main() -> tide::Result<()> { let mut app = tide::new(); app.at("/orders/shoes").post(order_shoes); app.listen("127.0.0.1:8080").await?; Ok(()) } 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:8000/orders/shoes -d '{ "name": "Chashu", "legs": 4 }'
Hello, Chashu! I've put in an order for 4 shoes
$ curl localhost:8000/orders/shoes -d '{ "name": "Mary Millipede", "legs": 750 }'
number too large to fit in target type
See more examples in the examples directory.
Modules
| convert | Traits for conversions between types. |
| http | Common types for HTTP operations. |
| listener | Types that represent HTTP transports and binding |
| log | Event logging types. |
| prelude | The Tide prelude. |
| security | HTTP Security Headers. |
| sessions | Tide session support |
| sse | Server-Sent Events (SSE) types. |
| utils | Miscellaneous utilities. |
Structs
| Body | A streaming HTTP body. |
| Error | The error type for HTTP operations. |
| Next | The remainder of a middleware chain, including the endpoint. |
| Redirect | A redirection endpoint. |
| Request | An HTTP request. |
| Response | An HTTP response |
| ResponseBuilder | Response Builder |
| Route | A handle to a route. |
| Server | An HTTP server. |
Enums
| StatusCode | HTTP response status codes. |
Traits
| Endpoint | An HTTP request handler. |
| Middleware | Middleware that wraps around the remaining middleware chain. |
| Status | Provides the |
Functions
| new | Create a new Tide server. |
| with_state | Create a new Tide server with shared application scoped state. |
Type Definitions
| Result | A specialized Result type for Tide. |