Gin Versions Save

Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

v1.7.1

3 years ago

BUGFIXES

  • fix: data race with trustedCIDRs from #2674(#2675)

v1.7.0

3 years ago

BUGFIXES

  • fix compile error from #2572 (#2600)
  • fix: print headers without Authorization header on broken pipe (#2528)
  • fix(tree): reassign fullpath when register new node (#2366)

ENHANCEMENTS

  • Support params and exact routes without creating conflicts (#2663)
  • chore: improve render string performance (#2365)
  • Sync route tree to httprouter latest code (#2368)
  • chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa (#2375)
  • chore(performance): improve countParams (#2378)
  • Remove some functions that have the same effect as the bytes package (#2387)
  • update:SetMode function (#2321)
  • remove a unused type SecureJSONPrefix (#2391)
  • Add a redirect sample for POST method (#2389)
  • Add CustomRecovery builtin middleware (#2322)
  • binding: avoid 2038 problem on 32-bit architectures (#2450)
  • Prevent panic in Context.GetQuery() when there is no Request (#2412)
  • Add GetUint and GetUint64 method on gin.context (#2487)
  • update content-disposition header to MIME-style (#2512)
  • reduce allocs and improve the render WriteString (#2508)
  • implement ".Unwrap() error" on Error type (#2525) (#2526)
  • Allow bind with a map[string]string (#2484)
  • chore: update tree (#2371)
  • Support binding for slice/array obj [Rewrite] (#2302)
  • basic auth: fix timing oracle (#2609)
  • Add mixed param and non-param paths (port of httprouter#329) (#2663)
  • feat(engine): add trustedproxies and remoteIP (#2632)

v1.6.3

4 years ago

ENHANCEMENTS

  • Improve performance: Change *sync.RWMutex to sync.RWMutex in context. #2351

v1.6.2

4 years ago

Release Notes

  • BUGFIXES
    • fix missing initial sync.RWMutex (#2305)
  • ENHANCEMENTS
    • Add set samesite in cookie. (#2306)

Contributors

v1.6.1

4 years ago

Release Notes

  • BUGFIXES
    • Revert "fix accept incoming network connections" (#2294) See the critical issue #2292

Contributors

v1.6.0

4 years ago

Release Notes

BREAKING

  • chore(performance): Improve performance for adding RemoveExtraSlash flag (#2159)
  • drop support govendor (#2148)
  • Added support for SameSite cookie flag (#1615)

FEATURES

  • add yaml negotitation (#2220)
  • FileFromFS (#2112)

BUGFIXES

  • Unix Socket Handling (#2280)
  • Use json marshall in context json to fix breaking new line issue. Fixes #2209 (#2228)
  • fix accept incoming network connections (#2216)
  • Fixed a bug in the calculation of the maximum number of parameters (#2166)
  • [FIX] allow empty headers on DataFromReader (#2121)
  • Add mutex for protect Context.Keys map (#1391)

ENHANCEMENTS

  • Add mitigation for log injection (#2277)
  • tree: range over nodes values (#2229)
  • tree: remove duplicate assignment (#2222)
  • chore: upgrade go-isatty and json-iterator/go (#2215)
  • path: sync code with httprouter (#2212)
  • Use zero-copy approach to convert types between string and byte slice (#2206)
  • Reuse bytes when cleaning the URL paths (#2179)
  • tree: remove one else statement (#2177)
  • tree: sync httprouter update (#2173) (#2172) (#2171)
  • tree: sync part httprouter codes and reduce if/else (#2163)
  • use http method constant (#2155)
  • upgrade go-validator to v10 (#2149)
  • Refactor redirect request in gin.go (#1970)
  • Add build tag nomsgpack (#1852)

DOCS

  • docs(path): improve comments (#2223)
  • Renew README to fit the modification of SetCookie method (#2217)
  • Fix spelling (#2202)
  • Remove broken link from README. (#2198)
  • Update docs on Context.Done(), Context.Deadline() and Context.Err() (#2196)
  • Update validator to v10 (#2190)
  • upgrade go-validator to v10 for README (#2189)
  • Update to currently output (#2188)
  • Fix "Custom Validators" example (#2186)
  • Add project to README (#2165)
  • docs(benchmarks): for gin v1.5 (#2153)
  • Changed wording for clarity in README.md (#2122)

MISC

  • ci support go1.14 (#2262)
  • chore: upgrade depend version (#2231)
  • Drop support go1.10 (#2147)
  • fix comment in mode.go (#2129)

Contributors

v1.5.0

4 years ago

Feature

  • [NEW] Now you can parse the inline lowercase start structure #1893
  • [NEW] [Break-Backward] Hold matched route full path in the Context #1826
  • [NEW] Add context param query cache #1450
  • [NEW] Add support of multipart multi files #1949
  • [NEW] Support bind http header param #1957
  • [NEW] Support bind unix time #1980
  • [NEW] Support negative Content-Length in DataFromReader #1981
  • [NEW] Add DisallowUnknownFields() in gin.Context.BindJSON() #2028
  • [NEW] Use specific net.Listener with Engine.RunListener() #2023

Bug fix

  • [FIX] Use DefaultWriter and DefaultErrorWriter for debug messages #1891
  • [FIX] Some code improvements #1909
  • [FIX] Use encode replace json marshal increase json encoder speed #1546
  • [FIX] Fix context.Params race condition on Copy() #1841
  • [FIX] Improve GetQueryMap performance #1918
  • [FIX] Improve get post data #1920
  • [FIX] Use context instead of x/net/context #1922
  • [FIX] Attempt to fix PostForm cache bug #1931
  • [FIX] [Break-Backward] Drop support for go1.8 and go1.9 #1933
  • [FIX] Bugfix for the FullPath feature #1919
  • [FIX] Gin1.5 bytes.Buffer to strings.Builder #1939
  • [FIX] Upgrade github.com/ugorji/go/codec #1969
  • [FIX] Simplify code #2004
  • [FIX] Identify terminal on a RISC-V architecture for auto-colored logs #2019
  • [FIX] [Break-Backward] Context.JSONP() now expects a semicolon (;) at the end #2007
  • [FIX] [Break-Backward] Upgrade validator version to v9 #1015
  • [FIX] Fix some typo #2079 #2080
  • [FIX] Relocate binding body tests #2086
  • [FIX] Use Writer in Context.Status #1606
  • [FIX] Engine.RunUnix() now returns the error if it can't change the file mode #2093
  • [FIX] RouterGroup.StaticFS() leaked files. Now it closes them. #2118
  • [FIX] Context.Request.FormFile leaked file, now it closes it #2114
  • [FIX] Ignore walking on form:"-" mapping #1943
  • [REFACTOR] [Break-Backward] Use encode replace json marshal increase json encoder speed #1546

v1.4.0

4 years ago

Feature

  • [NEW] Support for Go Modules #1569
  • [NEW] Refactor of form mapping multipart requesta #1829
  • [NEW] Supporting file binding #1264
  • [NEW] Add support for mapping arrays #1797
  • [NEW] Make context.Keys available as LogFormatterParams #1779
  • [NEW] Use internal/json for Marshal/Unmarshal #1791
  • [NEW] Support mapping time.Duration #1794
  • [NEW] Refactor form mappings #1749
  • [NEW] Added flag to context.Stream indicates if client disconnected in middle of stream #1252
  • [NEW] Extend context.File to allow for the content-dispositon attachments via a new method context.Attachment #1260
  • [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash #1238
  • [NEW] Add context.HandlerNames() #1729
  • [NEW] Add response size to LogFormatterParams #1752
  • [NEW] Allow ignoring field on form mapping #1733
  • [NEW] Add a function to force color in console output. #1724
  • [NEW] Binding for URL Params #1694
  • [NEW] Add LoggerWithFormatter method #1677
  • [NEW] RunFd method to run http.Server through a file descriptor #1609
  • [NEW] Yaml binding support #1618
  • [NEW] Add PureJSON renderer #694
  • [NEW] Set default time format in form binding #1487
  • [NEW] Upgrade dependency libraries #1491

Bug fix

  • [FIX] Truncate Latency precision in long running request #1830
  • [FIX] IsTerm flag should not be affected by DisableConsoleColor method. #1802
  • [FIX] Readme updates #1793 #1788 1789
  • [FIX] StaticFS: Fixed Logging two log lines on 404. #1805, #1804
  • [FIX] Moved examples to stand alone Repo #1775
  • [FIX] Support HTTP content negotiation wildcards #1112
  • [FIX] Pass MaxMultipartMemory when FormFile is called #1600
  • [FIX] LoadHTML* tests #1559
  • [FIX] Removed use of sync.pool from HandleContext #1565
  • [FIX] Format output log to os.Stderr #1571
  • [FIX] Make logger use a yellow background and a darkgray text for legibility #1570
  • [FIX] Remove sensitive request information from panic log. #1370
  • [FIX] log.Println() does not print timestamp #829 #1560
  • [FIX] Add missing copyright and update if/else #1497
  • [FIX] Update msgpack usage #1498
  • [FIX] Use protobuf on render #1496
  • [FIX] Add support for Protobuf format response #1479
  • [FIX] Add BindXML and ShouldBindXML #1485
  • [FIX] CI testing updates #1671 #1670 #1682 #1669
  • [FIX] StaticFS(): Send 404 when path does not exist #1663
  • [FIX] Handle nil body for JSON binding #1638
  • [FIX] Support bind uri param #1612
  • [FIX] recovery: fix issue with syscall import on google app engine #1640
  • [FIX] Make sure the debug log contains line breaks #1650
  • [FIX] Panic stack trace being printed during recovery of broken pipe #1089 #1259
  • [FIX] Context.Next() - recheck len of handlers on every iteration. #1745
  • [FIX] Fix all errcheck warnings #1739 #1653
  • [FIX] Change color methods to public in the defaultLogger. #1771
  • [FIX] Update writeHeaders method to use http.Header.Set #1722
  • [FIX] context.Copy() race condition #1020

v1.3.0

5 years ago

CHANGELOG

Gin 1.3.0

v1.2

6 years ago
  • [NEW] Switch from godeps to govendor
  • [NEW] Add support for Let's Encrypt via gin-gonic/autotls
  • [NEW] Improve README examples and add extra at examples folder
  • [NEW] Improved support with App Engine
  • [NEW] Add custom template delimiters, see #860
  • [NEW] Add Template Func Maps, see #962
  • [NEW] Add *context.Handler(), see #928
  • [NEW] Add *context.GetRawData()
  • [NEW] Add *context.GetHeader() (request)
  • [NEW] Add *context.AbortWithStatusJSON() (JSON content type)
  • [NEW] Add *context.Keys type cast helpers
  • [NEW] Add *context.ShouldBindWith()
  • [NEW] Add *context.MustBindWith()
  • [NEW] Add *engine.SetFuncMap()
  • [DEPRECATE] On next release: *context.BindWith(), see #855
  • [FIX] Refactor render
  • [FIX] Reworked tests
  • [FIX] logger now supports cygwin
  • [FIX] Use X-Forwarded-For before X-Real-Ip
  • [FIX] time.Time binding (#904)