Blitzkrieg

Blitzkrieg airplane logo

An HTTP web server written from scratch in Rust (WIP).

Documentation

https://docs.rs/blitzkrieg/latest/blitzkrieg/

Installation

cargo add blitzkrieg

Usage

Hello world

```rust use blitzkrieg::http::{Request, Response}; use blitzkrieg::server::Server;

fn main() { let server = Server::new("127.0.0.1:3000", Box::new(handler)); server.start(); }

fn handler(request: Request) -> Response { Response::new(200).body("Hello, world!") } ```

Multipart/form-data

```rust use blitzkrieg::http::{BodyType, Request, Response}; use blitzkrieg::server::Server; use std::collections::HashMap; use std::fs; fn main() { let server = Server::new("127.0.0.1:7818", Box::new(handler)); server.start(); }

fn handler(request: Request) -> Response { let mut headers: HashMap = HashMap::new(); headers.insert("Authorization".into(), "Some token".tostring()); match request.body.unwrap() { BodyType::FormdataBody(formdatabody) => { println!("Request content-type is multipart/form-data"); for field in formdatabody.fields.unwrapordefault() { println!("Name {}, value {}", field.name, field.value); } for file in formdatabody.files.unwrapordefault() { println!("Name {}, filename {}", file.name, file.filename); // Save file to disk fs::write(file.filename, file.content); } } BodyType::Text(textbody) => { println!("Request content-type is text"); println!("{textbody}"); } } Response::new(200).body("Hello, world!") } ```