Awesome Go

Echo

CategoryWeb Frameworks
SubcategoryWeb Frameworks
Stars32,769

High performance, minimalist Go web framework

About Echo

Latest release Last commit Go Reference CI Codecov OpenSSF Scorecard Sponsors Discussions X License

Echo

High performance, extensible, minimalist Go web framework.

Echo is built on Go's standard net/http and interoperates with it through echo.WrapHandler and echo.WrapMiddleware. It adds the parts the standard library leaves to you: a fast radix-tree router, request binding with pluggable validation, a deep middleware ecosystem, and centralized error handling. Echo is actively maintained, and v5 is the current release line.

Features

  • Fast radix-tree router that prioritizes routes smartly
  • Route groups, with middleware at the root, group or route level
  • Data binding for JSON, XML, form, query and path parameters, with pluggable validation
  • Helpers for JSON, XML, HTML, file, stream and other responses
  • Centralized error handling
  • Structured request logging with log/slog
  • Template rendering with any template engine
  • TLS, HTTP/2, automatic TLS with Let's Encrypt, and graceful shutdown

Used by

Echo runs in production across the Go ecosystem, including:

ProjectWhat runs on Echo
Bluesky indigoAT Protocol Relay and network services
Temporal UITemporal Web UI server
NVIDIA Cloud FunctionsLLM API gateway
Azure Container NetworkingContainer Networking Service REST API
osbuild-composerRed Hat Image Builder cloud API
Docker AgentAgent API, chat and A2A servers
YugabyteDByugabyted UI API server
PostHogLivestream service
BytebaseBackend server and API
HatchetAPI server
CasaOSAPI server
HankoAuthentication backend

See ADOPTERS.md for the full list. Using Echo in an open source project? Add it.

Sponsors

Sponsor
Blacksmith: faster, drop-in GitHub Actions runners
Encore: the platform for building Go-based cloud backends
Gravity Carbon

Echo is independent and community funded. If your company depends on Echo, please consider sponsoring it.

Getting started

Supported versions

  • v5 is the current major version, released on 2026-01-18. See API_CHANGES_V5.md for the API changes from v4 and upgrade notes.
  • v4 receives security updates and bug fixes until 2026-12-31.

See ROADMAP.md for where Echo is heading and the version support policy.

Installation

go get github.com/labstack/echo/v5

Echo supports the three most recent Go releases and may work with older ones.

Example

package main

import (
	"log/slog"
	"net/http"

	"github.com/labstack/echo/v5"
	"github.com/labstack/echo/v5/middleware"
)

func main() {
	// Echo instance
	e := echo.New()

	// Middleware
	e.Use(middleware.RequestLogger()) // log requests with log/slog
	e.Use(middleware.Recover())       // recover from panics and return an error

	// Routes
	e.GET("/", hello)

	// Start server
	if err := e.Start(":8080"); err != nil {
		slog.Error("failed to start server", "error", err)
	}
}

// Handler
func hello(c *echo.Context) error {
	return c.String(http.StatusOK, "Hello, World!")
}

More in the guide and the cookbook.

Middleware

Official

Maintained by the Echo team.

RepositoryDescription
labstack/echo-jwtJWT authentication
labstack/echo-contribCasbin, gorilla/sessions and pprof
labstack/echo-otelOpenTelemetry tracing and metrics
labstack/echo-prometheusPrometheus metrics

Third-party

These projects are maintained by their authors, not the Echo team. Review them before use, and check which Echo version (v4 or v5) each supports.

RepositoryDescription
oapi-codegen/oapi-codegenOpenAPI client and server code generator
swaggo/echo-swaggerServes Swagger 2.0 API documentation
ziflex/lechoZerolog logger for Echo
brpaz/echozapUber Zap logging middleware
samber/slog-echolog/slog logging middleware
darkweak/souinHTTP cache middleware based on Souin, with distributed storage support
mikestefanello/pagodaFull-stack web development starter kit built on Echo
go-woo/protoc-gen-echoGenerates Echo server code from Protocol Buffers

To add your library, send a pull request.

Contributing

Use issues for everything.

  • For a small change, send a pull request.
  • For a bigger change, open an issue to discuss it first.
  • A pull request should include tests, documentation and, where it helps, an example.

You can also contribute by reporting issues, suggesting features and improving the documentation.

Security

Report vulnerabilities privately through GitHub Security Advisories, not in public issues. See SECURITY.md for supported versions.

Credits

License

MIT

Frequently Asked Questions

What is Echo?

Echo is a Web Frameworks library for the Go programming language. High performance, minimalist Go web framework

How many GitHub stars does Echo have?

Echo has 32,769 GitHub stars in the directory's latest synchronization.

How do I install Echo?

Install Echo with the Go module system using `go get labstack/echo`. Check the repository for the current installation instructions.

What category does Echo belong to?

Echo is listed under Web Frameworks, specifically Web Frameworks.

← Back to Web Frameworks