= Mudpie
:app: Mudpie
== Overview
{app} is a simple multi-threaded HTTP server for the amazingly awesome Rust language. It is inspired by Python's WSGI specification.
{app} is written in 100% safe Rust code (no unsafe blocks) and has no dependencies. It is intended to be reliable and easy to audit for security, especially for embedded applications.
NOTE: The {app} master
branch is for Rust nightly.
== Hello World Code
extern crate mudpie; use mudpie::{WebServer, WebRequest, WebResponse};
fn hello(req: &WebRequest) -> WebResponse { let page = "
fn main() { let mut svr = WebServer::new(); svr.add_path("get", "/hello", hello); svr.run("127.0.0.1", 8000);
== Running the Demo Server
Use +cargo run+ to start the included demo server, which has some example pages you can visit at +http://localhost:8000/+.
$ cargo run 0.0.0.0 8000
Running `target/demo 0.0.0.0 8000`
listening on 0.0.0.0:8000 starting 10 worker threads
You can bench mark it using a program like "boom" or any other HTTP tester:
$ ./goprograms/bin/boom -n 100000 -c 10 -cpus 3 http://localhost:8000/bench
Summary: Total: 3.2466 secs. Slowest: 0.0342 secs. Fastest: 0.0001 secs. Average: 0.0003 secs.
== More Information
The link:src/bin/demo.rs[Demo Program] shows example usage
The link:http://www.rust-ci.org/kjpgit/mudpie/doc/mudpie/[Mudpie Crate API Docs]
The link:Internals.adoc[Internals] has gory architecture and protocol details
== License
Public Domain.