Repolode
labstack

labstack/echo

A high-performance, minimalist web framework for Go, built on the standard net/http package.

Stars
32,776
Forks
4,917
Open issues
76
Last commit
9 days ago

What is it?

Echo is a Go web framework for building HTTP servers and APIs. It wraps Go's standard net/http and interoperates with it through WrapHandler and WrapMiddleware, adding the pieces the standard library leaves to the developer: a radix-tree router, request data binding with pluggable validation, a middleware system, and centralized error handling.

Handlers receive a context object for reading requests and writing JSON, XML, HTML, files or streams. Middleware can be attached at the root, group or route level. The project provides official middleware for JWT authentication, OpenTelemetry, Prometheus metrics and pprof, and it supports TLS, HTTP/2, automatic certificates via Let's Encrypt and graceful shutdown.

The current major version is v5, and v4 receives security fixes through the end of 2026.

Key features

  • 01Fast radix-tree router with route groups
  • 02Request binding for JSON, XML, forms, query and path parameters, with pluggable validation
  • 03Centralized error handling and structured request logging via log/slog
  • 04Template rendering with any template engine
  • 05TLS, HTTP/2, automatic Let's Encrypt certificates and graceful shutdown

Use cases

  • Building REST or JSON APIs in Go
  • Writing microservices that need middleware for auth, logging and metrics
  • Serving HTTPS websites with automatic certificate management

Quick start

  1. 1

    Install the Echo v5 module into your Go project

    go get github.com/labstack/echo/v5
  2. 2

    Create main.go with the example code from the README

  3. 3

    Run the server and open http://localhost:8080

    go run main.go

Things to know

  • Requires Go; the README says it supports the three most recent Go releases.

Topics

FAQ

What is echo?
A high-performance, minimalist web framework for Go, built on the standard net/http package. Echo is a Go web framework for building HTTP servers and APIs. It wraps Go's standard net/http and interoperates with it through WrapHandler and WrapMiddleware, adding the pieces the standard library leaves to the developer: a radix-tree router, request data binding with pluggable validation, a middleware system, and centralized error handling.
Is echo free to use? What license does it have?
echo is open source under the MIT license. Check the license terms before using it in commercial products.
Is echo still maintained?
Actively maintained. The last commit to echo was on Oct 12, 2026.
What can I use echo for?
Building REST or JSON APIs in Go Writing microservices that need middleware for auth, logging and metrics Serving HTTPS websites with automatic certificate management
How do I install echo?
Install the Echo v5 module into your Go project: go get github.com/labstack/echo/v5 Create main.go with the example code from the README Run the server and open http://localhost:8080: go run main.go
Where can I get echo?
The source code and installation instructions are on GitHub: https://github.com/labstack/echo

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects