Bumps the go-deps group with 10 updates: | Package | From | To | | --- | --- | --- | | [cloud.google.com/go/compute](https://github.com/googleapis/google-cloud-go) | `1.23.1` | `1.23.3` | | [cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go) | `1.33.0` | `1.35.1` | | [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) | `1.45.27` | `1.47.9` | | [github.com/hashicorp/go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) | `0.7.4` | `0.7.5` | | [github.com/labstack/echo/v4](https://github.com/labstack/echo) | `4.11.2` | `4.11.3` | | [github.com/labstack/gommon](https://github.com/labstack/gommon) | `0.4.0` | `0.4.1` | | [github.com/openshift-online/ocm-sdk-go](https://github.com/openshift-online/ocm-sdk-go) | `0.1.374` | `0.1.385` | | [github.com/osbuild/images](https://github.com/osbuild/images) | `0.12.0` | `0.15.0` | | [github.com/spf13/cobra](https://github.com/spf13/cobra) | `1.7.0` | `1.8.0` | | [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.13.0` | `0.14.0` | Updates `cloud.google.com/go/compute` from 1.23.1 to 1.23.3 - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/documentai/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.23.1...compute/v1.23.3) Updates `cloud.google.com/go/storage` from 1.33.0 to 1.35.1 - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.33.0...storage/v1.35.1) Updates `github.com/aws/aws-sdk-go` from 1.45.27 to 1.47.9 - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.45.27...v1.47.9) Updates `github.com/hashicorp/go-retryablehttp` from 0.7.4 to 0.7.5 - [Changelog](https://github.com/hashicorp/go-retryablehttp/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/go-retryablehttp/compare/v0.7.4...v0.7.5) Updates `github.com/labstack/echo/v4` from 4.11.2 to 4.11.3 - [Release notes](https://github.com/labstack/echo/releases) - [Changelog](https://github.com/labstack/echo/blob/master/CHANGELOG.md) - [Commits](https://github.com/labstack/echo/compare/v4.11.2...v4.11.3) Updates `github.com/labstack/gommon` from 0.4.0 to 0.4.1 - [Release notes](https://github.com/labstack/gommon/releases) - [Commits](https://github.com/labstack/gommon/compare/v0.4.0...v0.4.1) Updates `github.com/openshift-online/ocm-sdk-go` from 0.1.374 to 0.1.385 - [Release notes](https://github.com/openshift-online/ocm-sdk-go/releases) - [Changelog](https://github.com/openshift-online/ocm-sdk-go/blob/main/CHANGES.md) - [Commits](https://github.com/openshift-online/ocm-sdk-go/compare/v0.1.374...v0.1.385) Updates `github.com/osbuild/images` from 0.12.0 to 0.15.0 - [Release notes](https://github.com/osbuild/images/releases) - [Commits](https://github.com/osbuild/images/compare/v0.12.0...v0.15.0) Updates `github.com/spf13/cobra` from 1.7.0 to 1.8.0 - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0) Updates `golang.org/x/oauth2` from 0.13.0 to 0.14.0 - [Commits](https://github.com/golang/oauth2/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/compute dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: cloud.google.com/go/storage dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/hashicorp/go-retryablehttp dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/labstack/echo/v4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/labstack/gommon dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/openshift-online/ocm-sdk-go dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/osbuild/images dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .. | ||
| middleware | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| bind.go | ||
| binder.go | ||
| CHANGELOG.md | ||
| codecov.yml | ||
| context.go | ||
| context_fs.go | ||
| echo.go | ||
| echo_fs.go | ||
| group.go | ||
| group_fs.go | ||
| ip.go | ||
| json.go | ||
| LICENSE | ||
| log.go | ||
| Makefile | ||
| README.md | ||
| response.go | ||
| router.go | ||
Supported Go versions
Latest version of Echo supports last four Go major releases and might work with older 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:
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
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
Installation
// go get github.com/labstack/echo/{version}
go get github.com/labstack/echo/v4
Example
package main
import (
"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 | JWT middleware |
| github.com/labstack/echo-contrib | casbin, gorilla/sessions, jaegertracing, prometheus, pprof, zipkin 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 | Automatically generate RESTful API documentation with OpenAPI Client and Server Code Generator |
| github.com/swaggo/echo-swagger | Automatically generate RESTful API documentation with Swagger 2.0. |
| github.com/ziflex/lecho | Zerolog logging library wrapper for Echo logger interface. |
| github.com/brpaz/echozap | Uber´s Zap logging library wrapper for Echo logger interface. |
| github.com/samber/slog-echo | Go slog logging library wrapper for Echo logger interface. |
| github.com/darkweak/souin/plugins/echo | HTTP cache system based on Souin to automatically get your endpoints cached. It supports some distributed and non-distributed storage systems depending your needs. |
| github.com/mikestefanello/pagoda | Rapid, easy full-stack web development starter kit built with Echo. |
| github.com/go-woo/protoc-gen-echo | ProtoBuf generate Echo server side code |
Please send a PR to add your own library here.
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)
- Roland Lammel (Maintainer)
- Martti T. (Maintainer)
- Pablo Andres Fuente (Maintainer)
- Contributors