vintage 0.7.0

A multi-threaded FastCGI server
Documentation
# vintage

Let's take it back to the 1990s. This library implements a multi-threaded server that speaks the [FastCGI protocol](https://www.mit.edu/~yandros/doc/specs/fcgi-spec.html).

## Try it out!

Browsers don't speak FastCGI protocol.
Thankfully, most popular web servers do. 
I'll be using Nginx & Caddy as examples.

1. Download either [Nginx]https://nginx.org/ or [Caddy]https://caddyserver.com/
2. Configure the web server to reverse proxy fastcgi:
   1. If you picked caddy, stick this in a file in the current directory called `Caddyfile`:
      ```
       localhost {
         reverse_proxy localhost:8000 {
           transport fastcgi
         }
       }
      ```

   2. If you picked nginx, stick this in a file in the current directory called `nginx.conf`:
      ```
       events { }
       http {
         server {
           location / {
             fastcgi_pass localhost:8000;
           }
         }
       }
      ```
3. Run the web server
   - Caddy: `sudo caddy run --config Caddyfile`
   - Nginx: `sudo nginx -p $(pwd) -c nginx.conf`
4. Run `cargo new --bin app && cd app && cargo add vintage`, and stick this in `main.rs`:
   ```rust
   use vintage::{ServerConfig, Response};

   fn main() {
       let config = ServerConfig::new()
           .on_get(["/about"], |_req, _params| {
               Response::html("<h1>Hello World</h1>")
           });

       let server = vintage::start(config, "localhost:8080").unwrap();

       server.join();
   }
   ```
5. Run `cargo run`
6. Visit `http://localhost` on your browser!
  
## Similar libraries

- [fastcgi]https://crates.io/crates/fastcgi
- [tokio-fastcgi]https://crates.io/crates/tokio-fastcgi
- [fastcgi-server]https://github.com/TheJokr/fastcgi-server