A high-performance HTTP web framework for Go with a Martini-like API, built for REST APIs, web apps and microservices.
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
Install the Echo v5 module into your Go project
go get github.com/labstack/echo/v5 - 2
Create main.go with the example code from the README
- 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
Express-inspired web framework for Go, built on the fasthttp engine, for writing REST APIs and web servers.
A fast, Flask-style C++ microframework for building HTTP and WebSocket web services, header-only and easy to use.
A high-performance web server, reverse proxy, load balancer, API gateway and content cache written in C.
An interactive, TLS-capable intercepting HTTP proxy with console, command-line and web interfaces for inspecting HTTP/1, HTTP/2 and WebSocket traffic.
A self-hosted tunnel written in Go that exposes localhost services to the internet through your own domain and server.