You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
4 years ago | |
---|---|---|
.. | ||
middleware | 4 years ago | |
.editorconfig | 6 years ago | |
.gitattributes | 6 years ago | |
.gitignore | 6 years ago | |
.travis.yml | 4 years ago | |
LICENSE | 6 years ago | |
Makefile | 6 years ago | |
README.md | 4 years ago | |
bind.go | 4 years ago | |
context.go | 4 years ago | |
echo.go | 4 years ago | |
go.mod | 4 years ago | |
go.sum | 4 years ago | |
group.go | 4 years ago | |
ip.go | 4 years ago | |
log.go | 6 years ago | |
response.go | 5 years ago | |
router.go | 4 years ago |
README.md
Supported Go versions
As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is required:
- 1.9.7+
- 1.10.3+
- 1.14+
Any of these versions will allow you to import Echo as github.com/labstack/echo/v4
which is the recommended
way of using Echo going forward.
For older versions, please use the latest v3 tag.
Feature Overview
- Optimized HTTP router which smartly prioritize routes
- Build robust and scalable RESTful APIs
- Group APIs
- Extensible middleware framework
- Define middleware at root, group or route level
- Data binding for JSON, XML and form payload
- Handy functions to send variety of HTTP responses
- Centralized HTTP error handling
- Template rendering with any template engine
- Define your format for the logger
- Highly customizable
- Automatic TLS via Let’s Encrypt
- HTTP/2 support
Benchmarks
Date: 2018/03/15
Source: https://github.com/vishr/web-framework-benchmark
Lower is better!
![](https://i.imgur.com/I32VdMJ.png)
Guide
Installation
// go get github.com/labstack/echo/{version}
go get github.com/labstack/echo/v4
Example
package main
import (
"net/http"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
func main() {
// Echo instance
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// Routes
e.GET("/", hello)
// Start server
e.Logger.Fatal(e.Start(":1323"))
}
// Handler
func hello(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
}
Help
Contribute
Use issues for everything
- For a small change, just send a PR.
- For bigger changes open an issue for discussion before sending a PR.
- PR should have:
- Test case
- Documentation
- Example (If it makes sense)
- You can also contribute by:
- Reporting issues
- Suggesting new features or enhancements
- Improve/fix documentation
Credits
- Vishal Rana - Author
- Nitin Rana - Consultant
- Contributors