echo README

The project's README from github.com/labstack/echo. As one markdown file: README.md.

Latest release Last commit Sourcegraph GoDoc Go Report Card GitHub Workflow Status (with event) Codecov Forum Twitter License

Echo

High performance, extensible, minimalist Go web framework.

Echo is built on Go's standard net/http — and interoperates with it via echo.WrapHandler / echo.WrapMiddleware — adding the parts the standard library leaves to you: a fast radix-tree router, request binding (with a pluggable validator), a deep middleware ecosystem, and centralized error handling. Actively maintained, with v5 as the current release line (see badges above for the latest version and most recent commit).

Help and questions: Github Discussions

Feature Overview

Sponsors

encore icon Encore – the platform for building Go-based cloud backends

Click here for more information on sponsorship.

Guide

Supported Echo versions

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

Installation

// go get github.com/labstack/echo/{version}
go get github.com/labstack/echo/v5

Latest version of Echo supports last four Go major releases and might work with older versions.

Example

package main

import (
  "github.com/labstack/echo/v5"
  "github.com/labstack/echo/v5/middleware"
  "log/slog"
  "net/http"
)

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

  // Middleware
  e.Use(middleware.RequestLogger()) // use the RequestLogger middleware with slog logger
  e.Use(middleware.Recover())       // recover panics as errors for proper error handling

  // 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!")
}

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, pprof) middlewares
github.com/labstack/echo-opentelemetry OpenTelemetry middleware for tracing and metrics
github.com/labstack/echo-prometheus Prometheus middleware for Echo

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
oapi-codegen/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.

Contribute

Use issues for everything

Credits

License

MIT

echo (labstack/echo)

Searching Database…

32.8K ·GitHub
Что это такое?Echo — это высокопроизводительный минималистичный веб-фреймворк для Go, который используют для создания веб-приложений, RESTful API и микросервисов.
Это фреймворк или библиотека, и как он уживается со стандартным net/http в Go?Это фреймворк, построенный на стандартном net/http из Go, и он с ним полностью совместим — готовые обработчики и middleware подключаются через echo.WrapHandler и echo.WrapMiddleware.
Как добавить его в проект?Подключите модуль Echo к проекту командой go get, как любую обычную Go-зависимость, а затем пройдите руководство Quick start на официальном сайте — больше ничего устанавливать не нужно.
Какие версии Go он поддерживает?Последний релиз Echo поддерживает четыре последние мажорные версии Go и, вполне возможно, работает и с более старыми.
С какой версии начинать — v4 или v5?Начинайте с v5 — это актуальная ветка на январь 2026 года. v4 получает только обновления безопасности и исправления ошибок до 31 декабря 2026 года, а изменения API между v4 и v5 перечислены в файле APICHANGESV5.md.
Можно ли использовать его в коммерческих проектах?Да — Echo распространяется по лицензии MIT, поэтому коммерческое использование, изменения и повторное распространение полностью разрешены.
Он сам берёт на себя HTTPS и HTTP/2?Да. Echo поддерживает автоматические TLS-сертификаты через Let's Encrypt и имеет встроенную поддержку HTTP/2, так что отдельный прокси только ради защищённого трафика не нужен.
Есть ли готовый стартовый набор для full-stack приложений?Да — Pagoda, сторонний проект из README, это быстрый и простой стартовый набор для full-stack веб-разработки, построенный на Echo.
Можно ли сгенерировать документацию по API прямо из кода?Да, через стороннее middleware: oapi-codegen генерирует клиентский и серверный код OpenAPI, а swaggo/echo-swagger создаёт документацию Swagger 2.0 для REST API.
Насколько проект зрелый?Очень — развивается с марта 2015 года, собрал более 32 000 звёзд на GitHub, активно поддерживается, и v5 сейчас актуальная ветка релизов; проект спонсируют такие платформы, как Encore.
What are similar projects?actix-web, iris, fiber, go-zero, Slim, chi, gofr, hono
Creator
labstack
Size
6.6 MB
Stars
32.8K
Age
11y
Commits · 90 Days