124 lines
3.8 KiB
Markdown
124 lines
3.8 KiB
Markdown
<a href="https://echo.labstack.com"><img height="80" src="https://cdn.labstack.com/images/echo-logo.svg"></a>
|
||
|
||
[![Sourcegraph](https://sourcegraph.com/github.com/labstack/echo/-/badge.svg?style=flat-square)](https://sourcegraph.com/github.com/labstack/echo?badge)
|
||
[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://pkg.go.dev/github.com/labstack/echo/v4)
|
||
[![Go Report Card](https://goreportcard.com/badge/github.com/labstack/echo?style=flat-square)](https://goreportcard.com/report/github.com/labstack/echo)
|
||
[![Build Status](http://img.shields.io/travis/labstack/echo.svg?style=flat-square)](https://travis-ci.org/labstack/echo)
|
||
[![Codecov](https://img.shields.io/codecov/c/github/labstack/echo.svg?style=flat-square)](https://codecov.io/gh/labstack/echo)
|
||
[![Join the chat at https://gitter.im/labstack/echo](https://img.shields.io/badge/gitter-join%20chat-brightgreen.svg?style=flat-square)](https://gitter.im/labstack/echo)
|
||
[![Forum](https://img.shields.io/badge/community-forum-00afd1.svg?style=flat-square)](https://github.com/labstack/echo/discussions)
|
||
[![Twitter](https://img.shields.io/badge/twitter-@labstack-55acee.svg?style=flat-square)](https://twitter.com/labstack)
|
||
[![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/labstack/echo/master/LICENSE)
|
||
|
||
## Supported Go versions
|
||
|
||
As of version 4.0.0, Echo is available as a [Go module](https://github.com/golang/go/wiki/Modules).
|
||
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: 2020/11/11<br>
|
||
Source: https://github.com/vishr/web-framework-benchmark<br>
|
||
Lower is better!
|
||
|
||
<img src="https://i.imgur.com/qwPNQbl.png">
|
||
<img src="https://i.imgur.com/s8yKQjx.png">
|
||
|
||
The benchmarks above were run on an Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
|
||
|
||
## [Guide](https://echo.labstack.com/guide)
|
||
|
||
### Installation
|
||
|
||
```sh
|
||
// go get github.com/labstack/echo/{version}
|
||
go get github.com/labstack/echo/v4
|
||
```
|
||
|
||
### Example
|
||
|
||
```go
|
||
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
|
||
|
||
- [Forum](https://github.com/labstack/echo/discussions)
|
||
- [Chat](https://gitter.im/labstack/echo)
|
||
|
||
## 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](https://github.com/vishr) - Author
|
||
- [Nitin Rana](https://github.com/nr17) - Consultant
|
||
- [Contributors](https://github.com/labstack/echo/graphs/contributors)
|
||
|
||
## License
|
||
|
||
[MIT](https://github.com/labstack/echo/blob/master/LICENSE)
|