ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

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

Echo

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

Echo 基于 Go 标准 net/http 构建——并通过 echo.WrapHandler / echo.WrapMiddleware 与其互操作——补充了标准库留给你的部分:一个快速的基数树路由器、请求绑定(支持可插拔的验证器)、一个深度中间件生态系统,以及集中式错误处理。该框架得到积极维护,当前发布线为 v5(有关最新版本和最近提交的徽章,请参见上方)。

帮助与问题:Github 讨论区

功能概览

  • 优化的 HTTP 路由器,智能地优先处理路由
  • 构建健壮且可扩展的 RESTful API
  • API 分组
  • 可扩展的中间件框架
  • 在根、组或路由级别定义中间件
  • 支持 JSON、XML 和表单负载的数据绑定
  • 便捷函数用于发送多种 HTTP 响应
  • 集中式 HTTP 错误处理
  • 支持任意模板引擎的模板渲染
  • 自定义日志记录器格式
  • 高度可定制
  • 通过 Let’s Encrypt 实现自动 TLS
  • 支持 HTTP/2

赞助商


点击 此处 获取有关赞助的更多信息。

指南

支持的 Echo 版本

  • 截至 2026-01-18,Echo 的最新主要版本为 v5
    • 请参阅 API_CHANGES_V5.md 了解 v4v5 之间的公共 API 变更及升级说明。
  • Echo v4 将提供 security* 更新和 bug 修复,直至 2026-12-31

请参阅 ROADMAP.md 了解 Echo 的发展方向及版本支持策略。

安装

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

Echo 的最新版本支持最近四个 Go 主要 releases,并且可能兼容 更早的版本。

示例

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

官方中间件仓库

以下中间件列表由 Echo 团队维护。

仓库描述
github.com/labstack/echo-jwtJWT 中间件
github.com/labstack/echo-contribcasbin, gorilla/sessions, pprof) 中间件
github.com/labstack/echo-opentelemetry用于追踪和指标的 OpenTelemetry 中间件
github.com/labstack/echo-prometheus用于 Echo 的 Prometheus 中间件

第三方中间件仓库

添加第三方中间件时请谨慎。Echo 团队没有时间和人力来保证此列表中中间件的安全性和质量

RepositoryDescription
oapi-codegen/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 的 Zap 日志库对 Echo 日志接口的封装。
github.com/samber/slog-echoGo slog 日志库对 Echo 日志接口的封装。
github.com/darkweak/souin/plugins/echo基于 Souin 的 HTTP 缓存系统,可自动缓存您的端点。根据您的需求,它支持某些分布式和非分布式存储系统。
github.com/mikestefanello/pagoda使用 Echo 构建的快速、易用的全栈 Web 开发启动套件。
github.com/go-woo/protoc-gen-echo使用 ProtoBuf 生成 Echo 服务端代码

请提交一个 PR,在此处添加你自己的库。

贡献

所有事项均使用 issues

  • 对于小改动,直接提交 PR 即可。
  • 对于较大的改动,在提交 PR 之前先开启一个 issue 进行讨论。
  • PR 应包含:
    • 测试用例
    • 文档
    • 示例(如果适用)
  • 你还可以通过以下方式做出贡献:
    • 报告 issues
    • 建议新功能或增强
    • 改进/修复文档

致谢

许可证

MIT