基于 Go 语言的高性能 HTTP Web 框架,API 风格类似 Martini,适用于 REST API、Web 应用和微服务。
labstack/echo
基于 Go 标准库 net/http 构建的高性能、极简 Web 框架。
- Star
- 32,776
- Fork
- 4,917
- 未关闭 Issue
- 76
- 最近提交
- 9天前
这是什么?
Echo 是一个用于构建 HTTP 服务和 API 的 Go Web 框架。它基于标准库 net/http 封装,并可通过 WrapHandler、WrapMiddleware 与标准库互操作,补充了标准库缺少的功能:基于基数树的路由、可插拔校验的请求数据绑定、中间件机制以及统一的错误处理。
处理函数通过上下文对象读取请求,并返回 JSON、XML、HTML、文件或流式响应。中间件可挂载在根、路由组或单个路由上。官方提供 JWT 认证、OpenTelemetry、Prometheus 指标和 pprof 等中间件,同时支持 TLS、HTTP/2、通过 Let's Encrypt 自动获取证书以及优雅关闭。
当前主版本为 v5,v4 将获得安全修复直至 2026 年底。
核心功能
- 01基于基数树的快速路由,支持路由组
- 02支持 JSON、XML、表单、查询参数和路径参数绑定,并可插拔校验
- 03统一错误处理,并通过 log/slog 输出结构化请求日志
- 04可与任意模板引擎配合进行页面渲染
- 05支持 TLS、HTTP/2、Let's Encrypt 自动证书和优雅关闭
适用场景
- 使用 Go 构建 REST 或 JSON 接口
- 编写需要认证、日志和监控中间件的微服务
- 部署需要自动管理证书的 HTTPS 网站
快速上手
- 1
在 Go 项目中安装 Echo v5 模块
go get github.com/labstack/echo/v5 - 2
使用 README 中的示例代码创建 main.go
- 3
运行服务器并访问 http://localhost:8080
go run main.go
使用前须知
- 需要 Go 环境;README 称支持最近三个 Go 版本。
标签
常见问题
- echo 是什么?
- 基于 Go 标准库 net/http 构建的高性能、极简 Web 框架。 Echo 是一个用于构建 HTTP 服务和 API 的 Go Web 框架。它基于标准库 net/http 封装,并可通过 WrapHandler、WrapMiddleware 与标准库互操作,补充了标准库缺少的功能:基于基数树的路由、可插拔校验的请求数据绑定、中间件机制以及统一的错误处理。
- echo 可以免费使用吗?用的什么许可证?
- echo 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- echo 还在维护吗?
- 活跃维护中。echo 最近一次提交是在 2026年10月12日。
- echo 适合用来做什么?
- 使用 Go 构建 REST 或 JSON 接口 编写需要认证、日志和监控中间件的微服务 部署需要自动管理证书的 HTTPS 网站
- echo 怎么安装和运行?
- 在 Go 项目中安装 Echo v5 模块: go get github.com/labstack/echo/v5 使用 README 中的示例代码创建 main.go 运行服务器并访问 http://localhost:8080: go run main.go
- 在哪里获取 echo?
- 源代码和安装说明在 GitHub 上:https://github.com/labstack/echo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
受 Express 启发、基于 fasthttp 构建的 Go 语言 Web 框架,用于开发 REST API 和 Web 服务。
一个快速、易用、类 Flask 路由风格的 C++ 微框架,用于构建 HTTP 和 WebSocket 服务。
用 C 编写的高性能 Web 服务器,兼具反向代理、负载均衡、API 网关和内容缓存功能。
一款支持 TLS 的交互式拦截 HTTP 代理,提供终端、命令行和 Web 三种界面,用于查看 HTTP/1、HTTP/2 和 WebSocket 流量。
用 Go 编写的自托管隧道工具,通过你自己的域名和服务器将本地服务暴露到公网。