Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/labstack/echo
High performance, minimalist Go web framework
https://github.com/labstack/echo
echo go http2 https labstack-echo letsencrypt micro-framework microservice middleware ssl web web-framework websocket
Last synced: 11 days ago
JSON representation
High performance, minimalist Go web framework
- Host: GitHub
- URL: https://github.com/labstack/echo
- Owner: labstack
- License: mit
- Created: 2015-03-01T17:43:01.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-06T20:53:23.000Z (about 1 month ago)
- Last Synced: 2024-10-18T15:18:13.221Z (21 days ago)
- Topics: echo, go, http2, https, labstack-echo, letsencrypt, micro-framework, microservice, middleware, ssl, web, web-framework, websocket
- Language: Go
- Homepage: https://echo.labstack.com
- Size: 6.05 MB
- Stars: 29,722
- Watchers: 526
- Forks: 2,219
- Open Issues: 75
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome - labstack/echo - High performance, minimalist Go web framework (Go)
- stars - labstack/echo
- awesome-ccamel - labstack/echo - High performance, minimalist Go web framework (Go)
- awesome-trevor - Echo - High performance, minimalist Go web framework (Programming / Golang)
- awesome-repositories - labstack/echo - High performance, minimalist Go web framework (Go)
- awesome-repositories - labstack/echo
- awesome-go - echo - high performance, minimalist Go web frameworkHigh performance, minimalist Go web framework. (Web frameworks)
- awesome-starts - labstack/echo - High performance, minimalist Go web framework (Go)
- go-awesome - echo
- awesome-x - echo
- awesome-go - Echo - High performance, minimalist Go web framework. Stars:`29.8K`. (Web Frameworks / Utility/Miscellaneous)
- awesome-list-microservice - echo
- awesome-tools - echo - High performance, minimalist Go web framework (Uncategorized / Uncategorized)
- awesome-go - echo - High performance, minimalist Go web framework - ★ 12106 (Web Frameworks)
- awesome-go-extra - echo - 03-01T17:43:01Z|2022-08-25T19:49:52Z| (Web Frameworks / Fail injection)
- StarryDivineSky - labstack/echo
- my-awesome - labstack/echo - echo,letsencrypt,micro-framework,microservice,middleware,ssl,web,web-framework,websocket pushed_at:2024-10 star:29.8k fork:2.2k High performance, minimalist Go web framework (Go)
- awesome-go - Echo - performance, minimalist web framework for Go. (Web Development)
README
[![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)
[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/labstack/echo/echo.yml?style=flat-square)](https://github.com/labstack/echo/actions)
[![Codecov](https://img.shields.io/codecov/c/github/labstack/echo.svg?style=flat-square)](https://codecov.io/gh/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/[email protected]?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)## Echo
High performance, extensible, minimalist Go web framework.
* [Official website](https://echo.labstack.com)
* [Quick start](https://echo.labstack.com/docs/quick-start)
* [Middlewares](https://echo.labstack.com/docs/category/middleware)Help and questions: [Github Discussions](https://github.com/labstack/echo/discussions)
### 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## Sponsors
Click [here](https://github.com/sponsors/labstack) for more information on sponsorship.
## Benchmarks
Date: 2020/11/11
Source: https://github.com/vishr/web-framework-benchmark
Lower is better!
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
```
Latest version of Echo supports last four Go major [releases](https://go.dev/doc/devel/release) and might work with older versions.### Example
```go
package mainimport (
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"net/http"
)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!")
}
```# Official middleware repositories
Following list of middleware is maintained by Echo team.
| Repository | Description |
|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [github.com/labstack/echo-jwt](https://github.com/labstack/echo-jwt) | [JWT](https://github.com/golang-jwt/jwt) middleware |
| [github.com/labstack/echo-contrib](https://github.com/labstack/echo-contrib) | [casbin](https://github.com/casbin/casbin), [gorilla/sessions](https://github.com/gorilla/sessions), [jaegertracing](https://github.com/uber/jaeger-client-go), [prometheus](https://github.com/prometheus/client_golang/), [pprof](https://pkg.go.dev/net/http/pprof), [zipkin](https://github.com/openzipkin/zipkin-go) middlewares |# Third-party middleware repositories
Be careful when adding 3rd party middleware. Echo teams does not have time or manpower to guarantee safety and quality
of middlewares in this list.| Repository | Description |
|------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [deepmap/oapi-codegen](https://github.com/deepmap/oapi-codegen) | Automatically generate RESTful API documentation with [OpenAPI](https://swagger.io/specification/) Client and Server Code Generator |
| [github.com/swaggo/echo-swagger](https://github.com/swaggo/echo-swagger) | Automatically generate RESTful API documentation with [Swagger](https://swagger.io/) 2.0. |
| [github.com/ziflex/lecho](https://github.com/ziflex/lecho) | [Zerolog](https://github.com/rs/zerolog) logging library wrapper for Echo logger interface. |
| [github.com/brpaz/echozap](https://github.com/brpaz/echozap) | Uber´s [Zap](https://github.com/uber-go/zap) logging library wrapper for Echo logger interface. |
| [github.com/samber/slog-echo](https://github.com/samber/slog-echo) | Go [slog](https://pkg.go.dev/golang.org/x/exp/slog) logging library wrapper for Echo logger interface. |
| [github.com/darkweak/souin/plugins/echo](https://github.com/darkweak/souin/tree/master/plugins/echo) | HTTP cache system based on [Souin](https://github.com/darkweak/souin) to automatically get your endpoints cached. It supports some distributed and non-distributed storage systems depending your needs. |
| [github.com/mikestefanello/pagoda](https://github.com/mikestefanello/pagoda) | Rapid, easy full-stack web development starter kit built with Echo. |
| [github.com/go-woo/protoc-gen-echo](https://github.com/go-woo/protoc-gen-echo) | ProtoBuf generate Echo server side code |Please send a PR to add your own library here.
## 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)
- [Roland Lammel](https://github.com/lammel) (Maintainer)
- [Martti T.](https://github.com/aldas) (Maintainer)
- [Pablo Andres Fuente](https://github.com/pafuent) (Maintainer)
- [Contributors](https://github.com/labstack/echo/graphs/contributors)## License
[MIT](https://github.com/labstack/echo/blob/master/LICENSE)