simple_http_parser 0.3.0

Converts raw http request to a Request and build Response
Documentation

http_parser

Converts raw request to Request and build Responses

Parse the raw http request to Request

    for stream in listener.incoming(){
        let mut tcp_stream = stream.unwrap();
        
        let mut buffer = [0; 16384];
        tcp_stream.read(&mut buffer).expect("Error reading stream");

        let raw_request = String::from_utf8_lossy(&buffer).to_string();
        let request = simple_http_parser::Request::from(raw_request);

And now you can use Request properties to build a Response and send it

        let mut response = simple_http_parser::Response::new();

        if request.path == "/" {
            response.set_body(simple_http_parser::Body::Text("Hello, World!".to_owned()));
        } else if request.path == "/favicon.ico" {
            response.set_header("Content-Type", "image/x-icon");
            
            let mut file = std::fs::File::open("./favicon.png").unwrap();
            let mut contents = vec![];
            file.read_to_end(&mut contents).unwrap();

            response.set_header("Content-Length", format!("{}", contents.len()).as_str());
            response.set_body(simple_http_parser::Body::Bytes(contents));
        } else {
            response.set_header("Content-Type", "application/json");
            response.set_body(simple_http_parser::Body::Text(format!("{{\n\t\"actualPath\":\"{}\"\n}}", request.path)));
        }

        tcp_stream.write_all(&response.build()).unwrap()
    }