From e80eda19e9683f858823ecf34a8fe47343f1ff39 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 4 Dec 2015 15:09:12 +0200 Subject: [PATCH] Issue #10: Added initial examples --- README.md | 4 +++- examples/README.md | 3 +++ examples/fileserver/Makefile | 5 +++++ examples/fileserver/README.md | 15 +++++++++++++++ examples/fileserver/fileserver.go | 23 +++++++++++++++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 examples/README.md create mode 100644 examples/fileserver/Makefile create mode 100644 examples/fileserver/README.md create mode 100644 examples/fileserver/fileserver.go diff --git a/README.md b/README.md index d36e690..6be82cb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,9 @@ concurrent keep-alive connections on a single server. [Documentation](https://godoc.org/github.com/valyala/fasthttp) -[Examples](https://godoc.org/github.com/valyala/fasthttp#pkg-examples) +[Examples from docs](https://godoc.org/github.com/valyala/fasthttp#pkg-examples) + +[Code examples](examples) [Switching from net/http to fasthttp](#switching-from-nethttp-to-fasthttp) diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..07e0b99 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,3 @@ +# Code examples + +* [Static file server](fileserver) diff --git a/examples/fileserver/Makefile b/examples/fileserver/Makefile new file mode 100644 index 0000000..f6fbc81 --- /dev/null +++ b/examples/fileserver/Makefile @@ -0,0 +1,5 @@ +fileserver: clean + go build -o fileserver + +clean: + rm -f fileserver diff --git a/examples/fileserver/README.md b/examples/fileserver/README.md new file mode 100644 index 0000000..c5ff700 --- /dev/null +++ b/examples/fileserver/README.md @@ -0,0 +1,15 @@ +# Static file server example + +Serves files from the given directory. + +# How to build + +``` +make +``` + +# How to run + +``` +./fileserver -addr=tcp.addr.to.listen:to -dir=/path/to/directory/to/serve +``` diff --git a/examples/fileserver/fileserver.go b/examples/fileserver/fileserver.go new file mode 100644 index 0000000..1636d83 --- /dev/null +++ b/examples/fileserver/fileserver.go @@ -0,0 +1,23 @@ +// Example static file server. Serves static files from the given directory. +package main + +import ( + "flag" + "log" + + "github.com/valyala/fasthttp" +) + +var ( + addr = flag.String("addr", ":8080", "TCP address to listen to") + dir = flag.String("dir", "/usr/share/nginx/html", "Directory to serve static files from") +) + +func main() { + flag.Parse() + + h := fasthttp.FSHandler(*dir, 0) + if err := fasthttp.ListenAndServe(*addr, h); err != nil { + log.Fatalf("error in ListenAndServe: %s", err) + } +}