deliver is a lightweight, fast HTTP router, middleware and context for Golang. It is designed to be simple, easy to use, and highly performant.
go get github.com/msavela/deliver- Fast, trie-based router
- Supports middleware
- Request/response context
- Easy to use API
deliver supports the standard HTTP methods: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS.
func main() {
d := deliver.New()
d.GET("/", func(res deliver.Response, req *deliver.Request) {
res.Send("Hello, World!")
})
d.POST("/users", func(res deliver.Response, req *deliver.Request) {
// Create a new user
})
d.PUT("/users/:id", func(res deliver.Response, req *deliver.Request) {
// Update a user
})
log.Fatal(http.ListenAndServe(":8080", d))
}deliver supports middleware that can be executed before or after a request.
func main() {
d := deliver.New()
// Logger middleware
d.UseHandlerNext(middleware.NewLogger())
d.GET("/", func(res deliver.Response, req *deliver.Request) {
res.Send("Hello, World!")
})
log.Fatal(http.ListenAndServe(":8080", d))
}You can find more examples in the examples directory:
deliver is licensed under the MIT License.