GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Echo
  • Pro
  • GitHub

This view

  • Original page
  • New address

GeezerVison is showing echo.labstack.com — Echo

New: Echo Pro — multi-tenant auth, quotas and signed webhooks for Echo v5. Founding pricing for the first 25 organisations.See Echo Pro

Echo

Build fast Go APIs.
Without the bloat.

A high-performance, minimalist Go web framework with a zero-allocation router, batteries-included middleware and an expressive API.

Get started32.8k on GitHub
go get github.com/labstack/echo/v5

Building a multi-tenant API? Echo Pro adds API keys, tenant isolation, quotas and signed webhooks.

server.go · excerpt
e := echo.New()
// Middleware
e.Use(middleware.RequestLogger())
e.Use(middleware.Recover())
// Route => handler
e.GET("/", func(c *echo.Context) error {
return c.String(http.StatusOK, "Hello, World!\n")
})
~/echo $ curl localhost:1323
HTTP/1.1 200 OK
Hello, World!
~/echo $

Built on Echo

  • Bluesky indigo
  • Temporal UI
  • NVIDIA Cloud Functions
  • Azure Container Networking
  • osbuild-composer (Red Hat)
  • Docker Agent
  • YugabyteDB
  • PostHog
  • Bytebase
  • Hatchet
  • CasaOS
  • Hanko
See all adopters
32.8kGitHub stars
0 allocsrouter, per request
25+built-in middlewares
MITopen source license

Features

Optimized router

Radix-tree router; matching a route allocates no memory with default settings. Static paths match before parameters, parameters before wildcards.

Middleware

CORS, CSRF, rate limiting, gzip, recover and request logging ship in Echo’s middleware package. JWT, sessions and metrics are official add-ons.

Data binding

Bind JSON, XML or form bodies and path parameters into a struct with one call to c.Bind. The binding guide covers query parameters.

TLS and HTTP/2

StartConfig.StartTLS serves HTTPS from certificate files, or set StartConfig.TLSConfig and call Start. HTTP/2 works over TLS by default.

Extensible

Write middleware as a plain function. Replace the binder, validator, renderer, IP extractor or error handler.

Templates

Use echo.TemplateRenderer for html/template, or set e.Renderer to any engine that implements echo.Renderer.

Quickstart

  1. Install

    Create a module and add Echo.

    go mod init myapp
    go get github.com/labstack/echo/v5
  2. Write

    Create server.go with one route. The full example adds imports and main.

    e.GET("/", func(c *echo.Context) error {
    return c.String(http.StatusOK, "Hello, World!\n")
    })
  3. Run

    Fetch dependencies and start serving on port 1323.

    go mod tidy
    go run server.go

Official packages

echo-jwtJWT authentication middleware backed by golang-jwt.
echo-otelOpenTelemetry tracing and metrics middleware.
echo-prometheusPrometheus metrics middleware.
echo-contribCasbin, sessions, pprof and tracing helpers.

Sponsors

BlacksmithFaster, drop-in GitHub Actions runners.EncoreThe platform for building Go-based cloud backends.
Customer.ioGravity CarbonCodeerrorBecome a sponsor

Echo stays MIT. Echo Pro is a separate commercial library that funds it.

Production building blocks for teams running multi-tenant APIs on Echo v5.

Auth and tenant isolationAPI keys, JWT access tokens and deny-by-default tenant authorizers.Quotas and usage meteringPer-tenant plans, AI and MCP metering, and Stripe meter export.Audit, webhooks and execution recordsDurable evidence, signed delivery and records of external effects.Embedded admin consolePlans, usage, audit and outbox views behind your own sign-in.
Explore Echo ProSee pricing

Site links

echo

High performance, extensible, minimalist Go web framework.

Docs

QuickstartRoutingMiddlewareCookbook

Project

GitHubReleasesDiscussionsContributing

Resources

API ReferenceSponsorMIT License
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.