Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/milesq/web_server
Write your backend with this dependency-less implementation of HTTP listener
https://github.com/milesq/web_server
backend
Last synced: about 2 months ago
JSON representation
Write your backend with this dependency-less implementation of HTTP listener
- Host: GitHub
- URL: https://github.com/milesq/web_server
- Owner: Milesq
- Created: 2019-08-11T21:13:39.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-18T15:10:02.000Z (over 1 year ago)
- Last Synced: 2024-10-31T11:49:41.572Z (2 months ago)
- Topics: backend
- Language: Rust
- Homepage:
- Size: 272 KB
- Stars: 10
- Watchers: 1
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Http Server lib for Rust
[![Build Status](https://travis-ci.com/Milesq/web_server.svg?branch=master)](https://travis-ci.com/Milesq/http_server)
[![dependency status](https://deps.rs/repo/github/milesq/web_server/status.svg)](https://deps.rs/repo/github/milesq/web_server)## 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
```rust
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
```rust
web_server::new()
```#### then you can declare your endpoints. E.g.
```rust
.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
```rust
.launch(PORT).unwrap()
```## Receiving post data
e.g.
```rust
use web_server::decoders::x_www_form_urlencoded;web_server::new()
.post("/add-user", Box::new(|req, _| {
println!("{}", req.get_body());
let body: HashMap = 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!