labstack

    labstack/echo

    #372 this week

    High performance, minimalist Go web framework

    web
    networking
    echo
    go
    http2
    https
    labstack-echo
    Go
    MIT
    32.5K stars
    2.3K forks
    32.5K GitHub watchers
    Updated 7/18/2026
    View on GitHub

    Backblaze Generative Media Hackathon

    Build the next generation of AI media apps with Genblaze, stored on Backblaze B2. $10,000 in prizes.

    Enter the hackathon

    Loading star history...

    Use Cases & Benefits

    • Echo is a high performance, minimalist web framework for Go, ideal for building scalable RESTful APIs and microservices.
    • Key features include an optimized HTTP router, extensible middleware, automatic TLS via Let's Encrypt, HTTP/2 support, and flexible data binding.
    • Strengths are high customizability, robust middleware support, and active maintenance; limitations may include reliance on Go ecosystem and middleware quality variance.
    • Organizations can use Echo in production to rapidly develop secure, performant web services with centralized error handling and support for modern protocols.
    • Ideal use cases include microservices, RESTful API backends, real-time web applications using WebSocket, and projects requiring HTTP/2 and automatic SSL.

    About echo

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

    Echo

    High performance, extensible, minimalist Go web framework.

    Help and questions: Github Discussions

    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

    Sponsors


    Click here for more information on sponsorship.

    Guide

    Installation

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

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

    Example

    package main
    
    import (
      "github.com/labstack/echo/v4"
      "github.com/labstack/echo/v4/middleware"
      "log/slog"
      "net/http"
    )
    
    func main() {
      // Echo instance
      e := echo.New()
    
      // Middleware
      e.Use(middleware.Logger())
      e.Use(middleware.Recover())
    
      // Routes
      e.GET("/", hello)
    
      // Start server
      if err := e.Start(":8080"); err != nil && !errors.Is(err, http.ErrServerClosed) {
        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.

    RepositoryDescription
    github.com/labstack/echo-jwtJWT middleware
    github.com/labstack/echo-contribcasbin, 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.

    RepositoryDescription
    deepmap/oapi-codegenAutomatically generate RESTful API documentation with OpenAPI Client and Server Code Generator
    github.com/swaggo/echo-swaggerAutomatically generate RESTful API documentation with Swagger 2.0.
    github.com/ziflex/lechoZerolog logging library wrapper for Echo logger interface.
    github.com/brpaz/echozapUber´s Zap logging library wrapper for Echo logger interface.
    github.com/samber/slog-echoGo slog logging library wrapper for Echo logger interface.
    github.com/darkweak/souin/plugins/echoHTTP 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/pagodaRapid, easy full-stack web development starter kit built with Echo.
    github.com/go-woo/protoc-gen-echoProtoBuf generate Echo server side code

    Please send a PR to add your own library here.

    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

    License

    MIT

    Discover Repositories

    Search across tracked repositories by name or description