rusty-web 0.0.2

Rusty Web is a lightweight web framework for rust developers.
Documentation
# Getting Started

Rusty Web is a lightweight web framework for rust developers.

## Installation

```
[dependencies]
rusty-web = "0.0.2"
```

## Basic Usage

```rust
use rusty_web::paths::{Path, Paths};
use rusty_web::request::Request;
use rusty_web::response::Response;
use rusty_web::server::run_server;
use rusty_web::status::Status;

fn home(request: Request, mut response: Response) {
    response.html(Status::Ok, "Home Page".to_string()).send();
}

fn about(request: Request, mut response: Response) {
    response.html(Status::Ok, "About Us".to_string()).send();
}

fn main() {
    let paths: Paths = vec![
        Path::new("/", home),
        Path::new("/about/", about),
    ];

    run_server("0.0.0.0:8080", paths);
}
```

## Handling file Upload

Handling file is much easier in Rusty Web.

```rust
fn upload(mut request: Request, mut response: Response) {
    if request.method == "POST" {
        let files = request.files();
        println!("FILES {:?}", files.keys());

        let file = files.value("file");
        println!("Some {:?}", file.is_some());
        response.html(Status::Ok, "Upload success".to_string()).send();
        return;
    }

    response.html(Status::BadRequest, "Upload failed".to_string()).send();
}
```

## Handling form data

Rusty Web supports `multipart/form-data` and `application/x-www-form-urlencoded` by default.
You can use to `request.form_data()` to access field values.

```rust
fn save_data(mut request: Request, mut response: Response) {
    if request.method == "POST" {
        let form_data = request.form_data();
        println!("Fields {:?}", form_data.keys());

        let username = form_data.value("username");
        println!("{:?}", username);

        response.html(Status::Ok, "Form success".to_string()).send();
        return;
    }

    response.html(Status::BadRequest, "Form failed".to_string()).send();
}
```

You can also use `request.form_data()` and `request.files()` together.

## Advanced Usage

In Rusty Web, you have full control over the socket stream. You can stream the response
however you like.

Go to [advanced usage tutorial](advanced/index)