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.
- Host: GitHub
- URL: https://github.com/adhamsalama/blitzkrieg
- Owner: adhamsalama
- Created: 2023-01-25T00:44:35.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-30T18:02:44.000Z (over 2 years ago)
- Last Synced: 2025-12-26T10:51:04.597Z (3 months ago)
- Topics: http, http-server, rust, webserver
- Language: Rust
- Homepage: https://docs.rs/blitzkrieg/latest/blitzkrieg/
- Size: 66.4 KB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Blitzkrieg

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
}
```