Skip to content

msavela/deliver

Repository files navigation

deliver Build Status

deliver is a lightweight, fast HTTP router, middleware and context for Golang. It is designed to be simple, easy to use, and highly performant.

Installation

go get github.com/msavela/deliver

Features

  • Fast, trie-based router
  • Supports middleware
  • Request/response context
  • Easy to use API

Routing

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))
}

Middleware

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))
}

Examples

You can find more examples in the examples directory:

License

deliver is licensed under the MIT License.

About

HTTP router, middleware and context for Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages