GitHub - go-zoo/bone: Lightning Fast HTTP Multiplexer (original) (raw)
Bone is a lightweight and lightning fast HTTP Multiplexer for Golang. It support :
These tests are just for fun, all these routers are great and efficient. Bone isn't the fastest router for every job.
package main
import( "net/http"
"github.com/go-zoo/bone" )
func main () { mux := bone.New()
mux.RegisterValidatorFunc("isNum", func(s string) bool { if _, err := strconv.Atoi(s); err == nil { return true } return false })
// mux.Get, Post, etc ... takes http.Handler // validator for route parameter mux.Get("/home/:id|isNum", http.HandlerFunc(HomeHandler)) // multiple parameter mux.Get("/profil/:id/:var", http.HandlerFunc(ProfilHandler)) mux.Post("/data", http.HandlerFunc(DataHandler))
// Support REGEX Route params mux.Get("/index/#id^[0-9]$", http.HandlerFunc(IndexHandler))
// Handle take http.Handler mux.Handle("/", http.HandlerFunc(RootHandler))
// GetFunc, PostFunc etc ... takes http.HandlerFunc mux.GetFunc("/test", Handler)
http.ListenAndServe(":8080", mux) }
func Handler(rw http.ResponseWriter, req *http.Request) { // Get the value of the "id" parameters. val := bone.GetValue(req, "id")
rw.Write([]byte(val)) }