vintage 0.2.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.

Try it out!

Browsers don't speak FastCGI protocol. Thankfully, most popular web servers do. So to test locally, we'll have to have one such web server running. I'll be using Nginx & Caddy as examples. Pick one.

  1. Download either Nginx or Caddy
  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:
    use vintage::{start, Response};
    
    fn main() {
        let server = start("localhost:8000", |_request| {
            Response::html("<h1>Hello World</h1>")
        }).unwrap();
    
        server.join();
    }
    
  5. Run cargo run
  6. Visit http://localhost on your browser!

Similar libraries