首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >gin v1.11.0 重磅更新:支持 HTTP/3,更强绑定能力,性能全面优化!

gin v1.11.0 重磅更新:支持 HTTP/3,更强绑定能力,性能全面优化!

作者头像
福大大架构师每日一题
发布2025-12-18 13:24:38
发布2025-12-18 13:24:38
2380
举报

💡 Go 语言 Web 框架 Gin 发布 v1.11.0,本次更新可谓是“大版本升级”,从功能新增、Bug 修复到性能优化,都有不少亮点。对于正在使用 Gin 开发后端的同学,这一版值得你马上升级体验!

功能更新

  • • feat(binding): 新增 BindPlain 方法
  • • feat(binding): 增加对 unixMilli 和 unixMicro 的支持
  • • feat(context): GetXxx 增加对更多 Go 原生类型的支持
  • • feat(context): 新增 SetCookieData 方法
  • • feat(form): 在表单绑定中为集合类型支持默认值
  • • feat(form): 在表单绑定中添加数组集合格式支持
  • • feat(form): 添加 form 标签的自定义字符串切片解析功能
  • • feat(fs): 导出、测试和文档化 OnlyFilesFS
  • • feat(fs): 支持从 http.FileSystem 加载 HTML
  • • feat(gin): 通过 quic-go 支持 HTTP/3
  • • feat(router): 路由增加对字面冒号的支持
  • • feat: 在 Context 中新增 AbortWithStatusPureJSON() 方法
  • • feat: 支持在运行时自定义 JSON 编码解码器

Bug 修复

  • • Revert: 修复绑定空值的时间导致的问题
  • • fix(binding): 防止重复解码,并在 decodeToml 中添加验证
  • • fix(context): 修复 Negotiate 中 YAML 判断逻辑错误
  • • fix(context): 检查 handler 是否为 nil
  • • fix(context): 验证 URL 非空,初始化查询缓存时防止错误
  • • fix(docs): 补充缺失的 Go Markdown 代码块
  • • fix(errors): 将 Unwrap 方法的接收者改为值类型
  • • fix(form): 为表单字段设置默认值
  • • fix(gin): 当空树处理不允许的方法时,不再 panic
  • • fix(gin): 修复 gin 模式的数据竞争警告
  • • fix(go): 修正无效的 Go 工具链版本
  • • fix(readme): 修复英文文档的损坏链接
  • • fix(time): 修复绑定空时间值的问题
  • • fix(tree): 在通配符类型构建失败时保持 panic 信息一致
  • • fix: 防止中间件重复进入的问题
  • • fix: 修复 arm64 上的 sonic 问题
  • • fix: 修复版本号不一致的问题

增强改进

  • • chore(bind): 当错误为 http.MaxBytesError 时返回 413 状态码
  • • chore(context): 测试 context 初始化和 handler 逻辑
  • • chore(deps): 提升 actions/setup-go 到 6
  • • chore(deps): 升级 github.com/gin-contrib/sse 到 1.1.0
  • • chore(deps): 升级 github.com/go-playground/validator/v10
  • • chore(deps): 升级 github.com/pelletier/go-toml/v2 到 2.2.4
  • • chore(deps): 升级 github.com/quic-go/quic-go
  • • chore(deps): 升级 github.com/stretchr/testify 到 1.11.1
  • • chore(deps): 升级 github.com/ugorji/go/codec 到 1.3.0
  • • chore(deps): 升级 golang.org/x/net
  • • chore(deps): 升级 google.golang.org/protobuf
  • • chore(mode): 移除 mode 中不可能的空值情况
  • • chore(render): 不再导出 tomlContentType
  • • chore(response): 防止 Hijack() 运行时 panic
  • • chore(security): 更新依赖以修复安全漏洞
  • • chore(tree): 用官方 min 函数替换自定义实现
  • • chore: 修正文档注释中的函数名
  • • chore: 更新 Go 版本和依赖以提高兼容性

代码重构

  • • refactor(binding): 用 strings.Cut 替代 strings.Index
  • • refactor(context): 为 SaveUploadedFile 方法新增可选权限参数
  • • refactor(context): 将 Keys 类型改为 map[any]any
  • • refactor(context): 重构 context 处理并提高测试稳定性
  • • refactor(context): 移除 get 方法中未使用的 Context 依赖
  • • refactor(context): 简化 “GetType()” 系列函数
  • • refactor(context): 避免在 SaveUploadedFile 中使用 filepath.Dir 两次
  • • refactor(recovery): 将 Authorization 头的掩码处理抽取成 maskAuthorization 函数
  • • refactor(render): 移除 writeHeader 的 headers 参数
  • • refactor(slice): 简化 SliceValidationError 的 Error 方法
  • • refactor(tree): 将 string(/) 替换为 "/"
  • • refactor: 用 any 替代 interface{}
  • • refactor: 将魔法数字 128 改为 unicode.MaxASCII 用于 AsciiJSON 渲染

构建过程更新

  • • build(deps): 升级 github.com/bytedance/sonic 到 v1.14.0
  • • build: 自动更新 Go 包依赖
  • • build: 将 Gin 的最低 Go 版本更新到 1.21
  • • ci(Makefile): 为 Makefile 目标添加帮助和描述
  • • ci(golangci-lint): 更新配置并修复 lint 问题
  • • ci(lint): 启用 perfsprint、testifylint、usestdlibvars 等 linter
  • • ci: 更新工作流以提高测试一致性
  • • ci: 添加 Go 1.24 到 GitHub Actions
  • • ci: 集成 Trivy 漏洞扫描
  • • ci: 支持 Go 1.25
  • • ci: 更新 Go 版本要求并移除测试文件

文档更新

  • • docs(changelog): 更新 Gin v1.10.1 发行说明
  • • docs(changelog): 更新到 Gin v1.11.0 并添加发行说明
  • • docs(context): 修复 AbortWithStatusPureJSON 注释拼写错误
  • • docs(context): 修正文档中的函数名
  • • docs(engine): 修复 With 方法的注释
  • • docs(gin): 替换失效的文档链接
  • • docs(gin): 更新 “不要信任所有代理” 部分的链接
  • • docs(readme): 添加葡萄牙语文档
  • • docs(readme): 添加 gin-gonic/contrib 链接
  • • docs(readme): 修正语言和调整链接位置
  • • docs(readme): 用 pkg 替换 godoc 链接
  • • docs(test): 改进 test_helpers.go 的 GoDoc
  • • docs: 修正文档中的语法和英文结构错误
  • • docs: 增加 Upd 语言列表
  • • docs: 添加可用 ID 的文档说明
  • • docs: 在 doc.go 文件中添加注释
  • • docs: 修正注释中的冠词使用
  • • docs: 修正 X-Real-IP 的大小写错误
  • • docs: 修正注释
  • • docs: 修正文档中的路由分组示例代码
  • • docs: 修复 Gin 快速开始中的拼写错误
  • • docs: 小幅文档调整
  • • docs: 去掉多余的空格
  • • docs: 更新 Gin v1.10.0 的文档和发行说明
  • • docs: 修复 README 中错误的徽章工作流标识

其他

  • • chroe: 将 yaml 包迁移到 github.com/goccy/go-yaml
  • • context_test.go: 删除无用的断言
  • • fix(golangci.yml): 调整 lint 配置,替换 exportloopref 为 copyloopvar
  • • perf(all): 用 strings.Cut 替代 strings.SplitN
  • • perf(context): 优化 getMapFromFormData 性能
  • • perf(recover): 用 strings 替代 bytes 提高性能
  • • perf(recovery): 优化 CustomRecoveryWithWriter 的日志输出
  • • perf: 优化 AsciiJSON.Render 方法,使用 fmt.Appendf 并重用临时缓冲
  • • refactor(internal/bytesconv): 用 crypto/rand 替代 rand,并将 rand.Int63 优化
  • • test(context): 为 SaveUploadedFile 测试添加文件清理逻辑
  • • test(context): 为 Context.File() 方法编写全面单元测试
  • • test(internal/fs): 修复测试函数名
  • • test(route): 为 routergroup 添加测试
  • • test: 修复 lint 错误

总结

gin v1.11.0 是一次功能、性能、安全全面升级的版本,带来了 HTTP/3 支持、表单绑定增强、上下文能力拓展等,让你的 Go Web 开发体验更丝滑 🚀

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能更新
  • Bug 修复
  • 增强改进
  • 代码重构
  • 构建过程更新
  • 文档更新
  • 其他
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档