Skip to content

Latest commit

 

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Http Server lib for Rust

Build Status dependency status

web_server is a small, dependency-less crate for creating HTTP servers.

When you coding the backend using Rust, the most annoying thing could be the size of a freamwork and the time needed to compile the application

The web_server package fixes these problems. web_server has no dependencies, but allows you to create full-fledged servers

First server using web_server

extern crate web_server;
web_server::new()
   .get("/", Box::new(|request: web_server::Request, mut response: web_server::Response|
        "Hello World!".into()))
   .launch(80)
   .unwrap();

It's easy!

First you must create instance of HttpServer

web_server::new()

then you can declare your endpoints. E.g.

.get("/your/path", Box::new(|request, default_response| {
    // There place your logic
    // This function returns Response
    "response text".into()
}))
.post("/your/path", Box::new(|_, _| "Handler for POST method"))
.route(web_server::HttpMethod::DELETE, "/your/path", Box::new(|_, _| "Handler for DELETE method"))
.any("/your/path", Box::new(|_, _| "Handler for any method"))

Now you must run server by launch method

.launch(PORT).unwrap()

Receiving post data

e.g.

    use web_server::decoders::x_www_form_urlencoded;

    web_server::new()
        .post("/add-user", Box::new(|req, _| {
            println!("{}", req.get_body());
            let body: HashMap<String, String> = x_www_form_urlencoded(req.get_body().as_str());
            format!(
                "Add new user: {}",
                body.get("user").unwrap_or(&String::from("Error!"))
            )
            .into()
        }))
        .launch(8080)
        .unwrap();

Read examples/ to know more!

About

Write your backend with this dependency-less implementation of HTTP listener

Topics

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages