--- /dev/null
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "fastcgi"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4159a0f48bea0281602e508eb070d7d7ba1f6ac2480f9db1a60a39274aea1cc"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "fcgisrv"
+version = "0.1.0"
+dependencies = [
+ "fastcgi",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.149"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
--- /dev/null
+extern crate fastcgi;
+use std::error::Error;
+use std::fs::remove_file;
+use std::io::Write;
+use std::os::unix::net::UnixListener;
+use std::os::fd::AsRawFd;
+
+fn main() -> Result<(),Box<dyn Error>> {
+ let socketpath = "/tmp/fcgisocket";
+
+ let _ = remove_file(socketpath);
+
+ let listener = UnixListener::bind(socketpath).unwrap();
+ fastcgi::run_raw(|mut req| {
+ for (k,v) in req.params() {
+ println!("key {} has value {}",k,v);
+ }
+
+ if let Err(e) = write!(&mut req.stdout(), "Status: 404 Not Found\nContent-Type: text/plain\n\nHello, world!") {
+ println!("Error was {}",e);
+ }
+
+ }, listener.as_raw_fd());
+ Ok(())
+}