Changelog
Features
- 6ca8ddb: feat(binding): add BindPlain (#3904) (@guonaihong)
- 4ccfa7c: feat(binding): add support for unixMilli and unixMicro (#4190) (@takanuva15)
- 9d7c0e9: feat(context): GetXxx added support for more go native types (#3633) (@CC11001100)
- fb09c82: feat(context): add SetCookieData (#4240) (@Narita-1095305)
- f05f966: feat(form): Support default values for collections in form binding (#4048) (@takanuva15)
- 3cb3067: feat(form): add array collection format in form binding (#3986) (@slowhigh)
- 24d6764: feat(form): add custom string slice for form tag unmarshal (#3970) (#3971) (@bruceNu1l)
- 8791c96: feat(fs): Export, test and document OnlyFilesFS (#3939) (@joeig)
- 71496ab: feat(fs): Implement loading HTML from http.FileSystem (#4053) (@sunshineplan)
- 3ac729d: feat(gin): support http3 using quic-go/quic-go (#3210) (@thinkerou)
- 4621b7a: feat(router): add literal colon support (#1432) (#2857) (@wssccc)
- dbd8a25: feat: added
AbortWithStatusPureJSON()
inContext
(#4290) (@ddevsr) - 688a429: feat: support custom json codec at runtime (#3391) (@timandy)
Bug fixes
- 8fb3136: Revert "fix(time): binding time with empty value (#4103)" (#4245) (@appleboy)
- e737e3e: fix(binding): prevent duplicate decoding and add validation in decodeToml (#4193) (@revevide)
- 4f339e6: fix(context): YAML judgment logic in Negotiate (#3966) (@RedCrazyGhost)
- 36b0ded: fix(context): check handler is nil (#3413) (@hktalent)
- e0d46de: fix(context): verify URL is Non-nil in initQueryCache() (#3969) (@adrianosela)
- dd33ff7: fix(docs): missing go markdown codeblock (#4266) (@vdusart)
- b38c59d: fix(errors): change Unwrap method receiver to value type (#4232) (@OrkhanAlikhanov)
- 28e57f5: fix(form): Set default value for form fields (#4047) (@ahmadSaeedGoda)
- 626d55b: fix(gin): Do not panic when handling method not allowed on empty tree (#4003) (@phsym)
- 7d14792: fix(gin): data race warning for gin mode (#1580) (@kplachkov)
- c677ccc: fix(go): invalid Go toolchain version (#3961) (@thinkerou)
- 3319038: fix(readme): fix broken link to English documentation (#4222) (@eduardo-ax)
- 674522d: fix(time): binding time with empty value (#4103) (@ksw2000)
- ea53388: fix(tree): Keep panic infos consistent when wildcard type build faild (#4077) (@kingcanfish)
- 8763f33: fix: prevent middleware re-entry issue in HandleContext (#3987) (@bound2)
- 7a1b655: fix: sonic on arm64 (#4234) (@yashgorana)
- 5826722: fix: version number discrepancy (#4299) (@suwakei)
Enhancements
- 40725d8: chore(bind): return 413 status code when error is
http.MaxBytesError
(#4227) (@ItalyPaleAle) - f875d87: chore(context): test context initialization and handler logic (#4087) (@appleboy)
- e7693e6: chore(deps): bump actions/setup-go from 5 to 6 (#4351) (@dependabot[bot])
- afa0c31: chore(deps): bump github.com/gin-contrib/sse from 0.1.0 to 1.1.0 (#4216) (@dependabot[bot])
- 255af88: chore(deps): bump github.com/go-playground/validator/v10 (#4208) (@dependabot[bot])
- 545fd74: chore(deps): bump github.com/go-playground/validator/v10 (#4289) (@dependabot[bot])
- c3c8620: chore(deps): bump github.com/go-playground/validator/v10 from 10.20.0 to 10.22.1 (#4052) (@dependabot[bot])
- cf32d2d: chore(deps): bump github.com/pelletier/go-toml/v2 from 2.2.2 to 2.2.4 (#4212) (@dependabot[bot])
- bb82473: chore(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.50.1 (#4197) (@dependabot[bot])
- 61c2b1c: chore(deps): bump github.com/quic-go/quic-go from 0.51.0 to 0.52.0 (#4250) (@dependabot[bot])
- b7d6308: chore(deps): bump github.com/quic-go/quic-go from 0.52.0 to 0.53.0 (#4281) (@dependabot[bot])
- 077a2f3: chore(deps): bump github.com/quic-go/quic-go from 0.53.0 to 0.54.0 (#4328) (@dependabot[bot])
- 4615025: chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#4347) (@dependabot[bot])
- a628782: chore(deps): bump github.com/ugorji/go/codec from 1.2.12 to 1.3.0 (#4268) (@dependabot[bot])
- cc4e114: chore(deps): bump golang.org/x/net from 0.25.0 to 0.27.0 (#4013) (@dependabot[bot])
- 733ee09: chore(deps): bump golang.org/x/net from 0.33.0 to 0.37.0 (#4178) (@dependabot[bot])
- 56fccc3: chore(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 (#4221) (@dependabot[bot])
- ef68fa0: chore(deps): bump golang.org/x/net from 0.38.0 to 0.40.0 (#4229) (@dependabot[bot])
- 0a86488: chore(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 (#4262) (@dependabot[bot])
- ae5be7f: chore(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 (#4297) (@dependabot[bot])
- 4714c2a: chore(deps): bump google.golang.org/protobuf from 1.34.1 to 1.36.6 (#4198) (@dependabot[bot])
- 28172fa: chore(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.8 (#4346) (@dependabot[bot])
- cca98d2: chore(deps): bump google.golang.org/protobuf from 1.36.8 to 1.36.9 (#4356) (@dependabot[bot])
- 57ec9e6: chore(mode): remove impossible case (empty value for mode) (#4303) (@mask-pp)
- 17d0b55: chore(render): do not export tomlContentType anymore (#4319) (@VarusHsu)
- 32065bb: chore(response): prevention of Hijack() runtime panics (#4295) (@suwakei)
- e2e80f3: chore(security): update vendor to fix CVE (#4121) (@xlgao-zju)
- 3f818c3: chore(security): upgrade quic-go version to 0.48.2 (#4127) (@appleboy)
- 334160b: chore(tree): replace the self-defined 'min' to official one (#3975) (@EndlessParadox1)
- d00e6a5: chore: fix some function names in comment (#4131) (@yangquanshi)
- 90cf460: chore: update Go versions and dependencies for improved compatibility (#4187) (@appleboy)
Refactor
- 8dd0889: refactor(binding): use strings.Cut to replace strings.Index (#3522) (@lgbgbl)
- e46bd52: refactor(context): add an optional permission parameter to the SaveUploadedFile method (#4068) (#4088) (@haesuo566)
- 41d8591: refactor(context): refactor
Keys
type tomap[any]any
(#3963) (@flc1125) - 647311a: refactor(context): refactor context handling and improve test robustness (#4066) (@kingcanfish)
- e4c2a27: refactor(context): remove unused Context dependency in get method (#4304) (@1911860538)
- c8a3adc: refactor(context): simplify "GetType()" functions (#4080) (@KaymeKaydex)
- a4baac6: refactor(context):Avoid using filepath.Dir twice in SaveUploadedFile (#4181) (@nezhafan)
- e30123a: refactor(recovery): extract Authorization header masking into maskAuthorization func (#4143) (@zeek0x)
- e198f6e: refactor(render): remove headers parameter from writeHeader (#4353) (@1911860538)
- 3f5b0af: refactor(slice): simplify SliceValidationError Error method (#3910) (@1911860538)
- 9b1e353: refactor(tree): replace string(/) with "/" in node.insertChild (#4354) (@1911860538)
- 848e1cd: refactor: replace interface{} with any in type declarations (#4249) (@flc1125)
- 67c9d4e: refactor: replace magic number 128 with unicode.MaxASCII in AsciiJSON Render (#4224) (@1911860538)
Build process updates
- da372fc: build(deps): upgrade github.com/bytedance/sonic from v1.13.2 to v1.14.0 (#4342) (@flc1125)
- b987b62: build: make automatically update package in golang (#4311) (@ddevsr)
- 7e29806: build: update Gin minimum Go version to 1.21 (#3960) (@appleboy)
- 40131af: ci(Makefile): added help and descriptions to targets (#3964) (@tr1sm0s1n)
- c4287b1: ci(golangci-lint): update configuration and fix lint issues (#4247) (@flc1125)
- 02c1144: ci(lint): enable perfsprint linter (#4090) (@mmorel-35)
- 5f55c6a: ci(lint): enable testifylint linter (#4010) (@mmorel-35)
- e8d34d0: ci(lint): enable usestdlibvars linter (#4091) (@mmorel-35)
- 23d6961: ci(lint): update workflows and improve test request consistency (#4126) (@appleboy)
- 3b28645: ci: add go version 1.24 to GitHub Actions (#4154) (@appleboy)
- cb000f5: ci: integrate Trivy vulnerability scanning into CI workflow (#4359) (@appleboy)
- 2119046: ci: support Go 1.25 (#4341) (@flc1125)
- b1c1e7b: ci: update Go version requirements and remove test files (#3957) (@appleboy)
Documentation updates
- 7858527: docs(changelog): update release notes for Gin v1.10.1 (#4360) (@appleboy)
- 6ad6205: docs(changelog): upgrade Gin to v1.11.0 and add release notes (#4361) (@appleboy)
- 9708475: docs(context): fix AbortWithStatusPureJSON comment typo (#4310) (@1911860538)
- ad740d5: docs(context): fix some function names in comment (#4079) (@wangjingcun)
- e60113d: docs(engine): fix comments for the
With
(#3955) (@flc1125) - 9d11234: docs(gin): Replace broken link to documentation with valid (#4064) (@M3DZIK)
- f5f5da8: docs(gin): update link to dont-trust-all-proxies section (#3938) (#3945) (@codespearhead)
- b080116: docs(readme): add Portuguese documentation. (#4078) (@YlanzinhoY)
- 19f5a13: docs(readme): add gin-gonic/contrib (#4134) (@123liuziming)
- a569ed8: docs(readme): fix language and moved link (#3962) (@truecrunchyfrog)
- 64ead9e: docs(readme): replace godoc with pkg (#3985) (@mengzhuo)
- 42f9328: docs(test): improved GoDoc in test_helpers.go (#4270) (@suwakei)
- 1b53a47: docs: Fixing English grammar mistakes and awkward sentence structure in doc/doc.md (#4207) (@boyczuk)
- 3afff29: docs: add Upd language list (#4211) (@andreybolonin)
- 4bdcd9d: docs: added available
ID
documentation (#4287) (@ddevsr) - bdc1ad7: docs: added comment in doc.go (#4274) (@suwakei)
- ad4f436: docs: correct article usage in comments (#4301) (@Caplost)
- 1eb8272: docs: fix case error of X-Real-IP (#4185) (@nezhafan)
- 49e9137: docs: fix comment (#4205) (@nezhafan)
- f2c861a: docs: fix route group example code (#4020) (@demouth)
- 9c081de: docs: fix typo in Gin Quick Start (#3997) (@demouth)
- a9c5b36: docs: small changes (#4261) (@eqsdxr)
- 299c6f3: docs: trimmed some white spaces (#4070) (@tsukasaI)
- 490accf: docs: update documentation and release notes for Gin v1.10.0 (#3953) (@appleboy)
- 76dd08d: docs: wrong badge workflow in README.md (#4286) (@ddevsr)
Others
- cf47752: chroe: migrate yaml package to github.com/goccy/go-yaml (#4272) (@milhamsuryapratama)
- 8f7c340: context_test.go: fix useless asserts (#4115) (@deining)
- ebe5e2a: fix(golangci.yml): move fiximports to goimports section and replace exportloopref with copyloopvar (#4167) (@1911860538)
- 3d8e288: perf(all): use strings.Cut to replace strings.SplitN (#4239) (@1911860538)
- f9bd00a: perf(context): optimize getMapFromFormData performance (#4339) (@1911860538)
- 3c12d2a: perf(recover): replace bytes with strings in function for better performance (#4252) (@1911860538)
- 45b805f: perf(recovery): optimize the log output of CustomRecoveryWithWriter (#4258) (@1911860538)
- 0eb9949: perf: optimize AsciiJSON.Render method by using fmt.Appendf and reusing temp buffer (#4175) (@1911860538)
- 77d70e5: refactor(internal/bytesconv): replace rand usage with crypto/rand and rand.Int63 (#4259) (@1911860538)
- c8af82a: test(context): add cleanup for uploaded file in SaveUploadedFile test (#4248) (@flc1125)
- dab5944: test(context): add comprehensive unit tests for
Context.File()
method (#4307) (@Caplost) - 2e2bd1f: test(internal/fs): fix test function name (#4235) (@salimabsi)
- a4ac275: test(route): add some test for routergroup (#4291) (@chenhuiluo)
- da67cc1: test: fix lint failures (#4244) (@sid-maddy)