650

0

Echo

高性能、极简的 Go web 框架

源图 GoDoc 去报告卡 构建状态 编解码器 论坛 推特 执照

支持的 Go 版本

从 4.0.0 版本开始,Echo 可作为Go 模块使用。因此,需要一个能够理解 /vN 后缀导入的 Go 版本:

  • 1.9.7+
  • 1.10.3+
  • 1.14+

这些版本中的任何一个都将允许您导入 Echo,github.com/labstack/echo/v4这是今后使用 Echo 的推荐方式。

对于旧版本,请使用最新的 v3 标签。

功能概述

  • 优化的 HTTP 路由器,可智能地优先路由
  • 构建强大且可扩展的 RESTful API
  • 组 API
  • 可扩展的中间件框架
  • 在根、组或路由级别定义中间件
  • JSON、XML 和表单有效负载的数据绑定
  • 发送各种 HTTP 响应的便捷功能
  • 集中式 HTTP 错误处理
  • 使用任何模板引擎进行模板渲染
  • 定义记录器的格式
  • 高度可定制
  • 通过 Let's Encrypt 的自动 TLS
  • HTTP/2 支持

基准

日期:2020/11/11 来源:https ://github.com/vishr/web-framework-benchmark 越低越好!

上述基准测试在 Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz 上运行

指导

安装

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

例子

package main

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

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

第三方中间件

存储库 描述
github.com/labstack/echo-contrib (由 Echo 团队提供)casbingorilla/sessionsjaegertracingprometheuspprofzipkin中间件
deepmap/oapi-codegen 使用OpenAPI客户端和服务器代码生成器自动生成 RESTful API 文档
github.com/swaggo/echo-swagger 使用Swagger 2.0自动生成 RESTful API 文档。
github.com/ziflex/lecho 用于 Echo 记录器接口的Zerolog记录库包装器。
github.com/brpaz/echozap Uber的 Echo 记录器接口的Zap记录库包装器。
github.com/darkweak/souin/plugins/echo 基于Souin的 HTTP 缓存系统可自动缓存您的端点。它根据您的需要支持一些分布式和非分布式存储系统。
github.com/mikestefanello/pagoda 使用 Echo 构建的快速、简单的全栈 Web 开发入门工具包。
github.com/go-woo/protoc-gen-echo ProtoBuf 生成 Echo 服务端代码

请发送 PR 以在此处添加您自己的库。

帮助

贡献

使用问题解决所有问题

  • 对于一个小的改变,只需发送一个 PR。
  • 对于更大的更改,请在发送 PR 之前打开一个问题进行讨论。
  • 公关应该有:
    • 测试用例
    • 文档
    • 示例(如果有意义)
  • 您还可以通过以下方式做出贡献:
    • 报告问题
    • 建议新功能或增强功能
    • 改进/修复文档

Credits

执照

MIT