An open API service indexing awesome lists of open source software.

https://github.com/adhamsalama/blitzkrieg

An HTTP web server written from scratch in Rust.
https://github.com/adhamsalama/blitzkrieg

http http-server rust webserver

Last synced: 12 days ago
JSON representation

An HTTP web server written from scratch in Rust.

Awesome Lists containing this project

README

          

# 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](examples/hello_world.rs)

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

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

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

### [File](examples/file.rs)

```rust
use std::collections::HashMap;

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

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

fn handler(req: Request) -> Response {
let mut res = Response::new(200);
let file = if let Some(BodyType::File(file)) = req.body {
file
} else {
return res.body("Hello, world!");
};
std::fs::write(format!("file.{}", file.extension), &file.content.clone()).unwrap();
res.body = Some(file.content);
let mut headers = HashMap::new();
headers.insert(
"Content-Type".into(),
req.headers.get("Content-Type").unwrap().into(),
);
res.headers = Some(headers);
res
}
```