diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..e858ee7 --- /dev/null +++ b/doc.go @@ -0,0 +1,50 @@ +/* +Package gemini implements the Gemini protocol. + +Client is a Gemini client. + + client := &gemini.Client{} + resp, err := client.Get("gemini://example.com") + if err != nil { + // handle error + } + if resp.Status.Class() == gemini.StatusClassSucess { + defer resp.Body.Close() + // ... + } + // ... + +Server is a Gemini server. + + server := &gemini.Server{ + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + } + +Servers should be configured with certificates: + + err := server.Certificates.Load("/var/lib/gemini/certs") + if err != nil { + // handle error + } + +Servers can accept requests for multiple hosts and schemes: + + server.RegisterFunc("example.com", func(w *gemini.ResponseWriter, r *gemini.Request) { + fmt.Fprint(w, "Welcome to example.com") + }) + server.RegisterFunc("example.org", func(w *gemini.ResponseWriter, r *gemini.Request) { + fmt.Fprint(w, "Welcome to example.org") + }) + server.RegisterFunc("http://example.net", func(w *gemini.ResponseWriter, r *gemini.Request) { + fmt.Fprint(w, "Proxied content from http://example.net") + }) + +To start the server, call ListenAndServe: + + err := server.ListenAndServe() + if err != nil { + // handle error + } +*/ +package gemini diff --git a/gemini.go b/gemini.go index c756845..86b31ae 100644 --- a/gemini.go +++ b/gemini.go @@ -1,52 +1,3 @@ -/* -Package gemini implements the Gemini protocol. - -Client is a Gemini client. - - client := &gemini.Client{} - resp, err := client.Get("gemini://example.com") - if err != nil { - // handle error - } - if resp.Status.Class() == gemini.StatusClassSucess { - defer resp.Body.Close() - // ... - } - // ... - -Server is a Gemini server. - - server := &gemini.Server{ - ReadTimeout: 10 * time.Second, - WriteTimeout: 10 * time.Second, - } - -Servers should be configured with certificates: - - err := server.Certificates.Load("/var/lib/gemini/certs") - if err != nil { - // handle error - } - -Servers can accept requests for multiple hosts and schemes: - - server.RegisterFunc("example.com", func(w *gemini.ResponseWriter, r *gemini.Request) { - fmt.Fprint(w, "Welcome to example.com") - }) - server.RegisterFunc("example.org", func(w *gemini.ResponseWriter, r *gemini.Request) { - fmt.Fprint(w, "Welcome to example.org") - }) - server.RegisterFunc("http://example.net", func(w *gemini.ResponseWriter, r *gemini.Request) { - fmt.Fprint(w, "Proxied content from http://example.net") - }) - -To start the server, call ListenAndServe: - - err := server.ListenAndServe() - if err != nil { - // handle error - } -*/ package gemini import (