Echo

高性能、可扩展、极简的Go Web框架。(High performance, extensible, minimalist Go web framework.)

Github星跟踪图

高性能、可扩展、极简的Go Web框架。

功能概述

  • 优化的HTTP路由器,它优先考虑路由
  • 构建强大而可扩展的RESTful API
  • Group API
  • 可扩展中间件框架
  • 在root,组或路由级别定义中间件
  • JSON,XML和表单有效载荷的数据绑定
  • 方便的功能发送各种HTTP响应
  • 集中的HTTP错误处理
  • 任何模板引擎的模板呈现
  • 为日志记录器定义您的格式
  • 高度可定制
  • 通过Let’s Encrypt自动TLS
  • HTTP/2支持

主要指标

概览
名称与所有者labstack/echo
主编程语言Go
编程语言Go (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2015-03-01 17:43:01
推送于2025-04-04 08:01:42
最后一次提交2025-04-04 17:01:42
发布数125
最新版本名称v4.13.3 (发布于 )
第一版名称v0.0.2 (发布于 )
用户参与
星数30.9k
关注者数528
派生数2.3k
提交数1.8k
已启用问题?
问题数1445
打开的问题数62
拉请求数587
打开的拉请求数30
关闭的拉请求数398
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Sourcegraph
GoDoc
Go Report Card
Build Status
Codecov
Join the chat at https://gitter.im/labstack/echo
Forum
Twitter
License

Supported Go versions

As of version 4.0.0, Echo is available as a Go module.
Therefore a Go version capable of understanding /vN suffixed imports is required:

  • 1.9.7+
  • 1.10.3+
  • 1.11+

Any of these versions will allow you to import Echo as github.com/labstack/echo/v4 which is the recommended
way of using Echo going forward.

For older versions, please use the latest v3 tag.

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

Benchmarks

Date: 2018/03/15
Source: https://github.com/vishr/web-framework-benchmark
Lower is better!

Guide

Installation

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

Example

package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/middleware"
)

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

  // Middleware
  e.Use(middleware.Logger())
  e.Use(middleware.Recover())

  // Routes
  e.GET("/", hello)

  // Start server
  e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, World!")
}

Help

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