github.com/hellobchain/third_party@v0.0.0-20230331131523-deb0478a2e52/gin/CHANGELOG.md (about)

     1  # Gin ChangeLog
     2  
     3  ## Gin v1.7.2
     4  
     5  ### BUGFIXES
     6  
     7  * Fix conflict between param and exact path [#2706](https://github.com/gin-gonic/gin/issues/2706). Close issue [#2682](https://github.com/gin-gonic/gin/issues/2682) [#2696](https://github.com/gin-gonic/gin/issues/2696).
     8  
     9  ## Gin v1.7.1
    10  
    11  ### BUGFIXES
    12  
    13  * fix: data race with trustedCIDRs from [#2674](https://github.com/gin-gonic/gin/issues/2674)([#2675](https://github.com/gin-gonic/gin/pull/2675))
    14  
    15  ## Gin v1.7.0
    16  
    17  ### BUGFIXES
    18  
    19  * fix compile error from [#2572](https://github.com/gin-gonic/gin/pull/2572) ([#2600](https://github.com/gin-gonic/gin/pull/2600))
    20  * fix: print headers without Authorization header on broken pipe ([#2528](https://github.com/gin-gonic/gin/pull/2528))
    21  * fix(tree): reassign fullpath when register new node ([#2366](https://github.com/gin-gonic/gin/pull/2366))
    22  
    23  ### ENHANCEMENTS
    24  
    25  * Support params and exact routes without creating conflicts ([#2663](https://github.com/gin-gonic/gin/pull/2663))
    26  * chore: improve render string performance ([#2365](https://github.com/gin-gonic/gin/pull/2365))
    27  * Sync route tree to httprouter latest code ([#2368](https://github.com/gin-gonic/gin/pull/2368))
    28  * chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa ([#2375](https://github.com/gin-gonic/gin/pull/2375))
    29  * chore(performance): improve countParams ([#2378](https://github.com/gin-gonic/gin/pull/2378))
    30  * Remove some functions that have the same effect as the bytes package ([#2387](https://github.com/gin-gonic/gin/pull/2387))
    31  * update:SetMode function ([#2321](https://github.com/gin-gonic/gin/pull/2321))
    32  * remove a unused type SecureJSONPrefix ([#2391](https://github.com/gin-gonic/gin/pull/2391))
    33  * Add a redirect sample for POST method ([#2389](https://github.com/gin-gonic/gin/pull/2389))
    34  * Add CustomRecovery builtin middleware ([#2322](https://github.com/gin-gonic/gin/pull/2322))
    35  * binding: avoid 2038 problem on 32-bit architectures ([#2450](https://github.com/gin-gonic/gin/pull/2450))
    36  * Prevent panic in Context.GetQuery() when there is no Request ([#2412](https://github.com/gin-gonic/gin/pull/2412))
    37  * Add GetUint and GetUint64 method on gin.context ([#2487](https://github.com/gin-gonic/gin/pull/2487))
    38  * update content-disposition header to MIME-style ([#2512](https://github.com/gin-gonic/gin/pull/2512))
    39  * reduce allocs and improve the render `WriteString` ([#2508](https://github.com/gin-gonic/gin/pull/2508))
    40  * implement ".Unwrap() error" on Error type ([#2525](https://github.com/gin-gonic/gin/pull/2525)) ([#2526](https://github.com/gin-gonic/gin/pull/2526))
    41  * Allow bind with a map[string]string ([#2484](https://github.com/gin-gonic/gin/pull/2484))
    42  * chore: update tree ([#2371](https://github.com/gin-gonic/gin/pull/2371))
    43  * Support binding for slice/array obj [Rewrite] ([#2302](https://github.com/gin-gonic/gin/pull/2302))
    44  * basic auth: fix timing oracle ([#2609](https://github.com/gin-gonic/gin/pull/2609))
    45  * Add mixed param and non-param paths (port of httprouter[#329](https://github.com/gin-gonic/gin/pull/329)) ([#2663](https://github.com/gin-gonic/gin/pull/2663))
    46  * feat(engine): add trustedproxies and remoteIP ([#2632](https://github.com/gin-gonic/gin/pull/2632))
    47  
    48  ## Gin v1.6.3
    49  
    50  ### ENHANCEMENTS
    51  
    52    * Improve performance: Change `*sync.RWMutex` to `sync.RWMutex` in context. [#2351](https://github.com/gin-gonic/gin/pull/2351)
    53  
    54  ## Gin v1.6.2
    55  
    56  ### BUGFIXES
    57    * fix missing initial sync.RWMutex [#2305](https://github.com/gin-gonic/gin/pull/2305)
    58  ### ENHANCEMENTS
    59    * Add set samesite in cookie. [#2306](https://github.com/gin-gonic/gin/pull/2306)
    60  
    61  ## Gin v1.6.1
    62  
    63  ### BUGFIXES
    64    * Revert "fix accept incoming network connections" [#2294](https://github.com/gin-gonic/gin/pull/2294)
    65  
    66  ## Gin v1.6.0
    67  
    68  ### BREAKING
    69    * chore(performance): Improve performance for adding RemoveExtraSlash flag [#2159](https://github.com/gin-gonic/gin/pull/2159)
    70    * drop support govendor [#2148](https://github.com/gin-gonic/gin/pull/2148)
    71    * Added support for SameSite cookie flag [#1615](https://github.com/gin-gonic/gin/pull/1615)
    72  ### FEATURES
    73    * add yaml negotiation [#2220](https://github.com/gin-gonic/gin/pull/2220)
    74    * FileFromFS [#2112](https://github.com/gin-gonic/gin/pull/2112)
    75  ### BUGFIXES
    76    * Unix Socket Handling [#2280](https://github.com/gin-gonic/gin/pull/2280)
    77    * Use json marshall in context json to fix breaking new line issue. Fixes #2209 [#2228](https://github.com/gin-gonic/gin/pull/2228)
    78    * fix accept incoming network connections [#2216](https://github.com/gin-gonic/gin/pull/2216)
    79    * Fixed a bug in the calculation of the maximum number of parameters [#2166](https://github.com/gin-gonic/gin/pull/2166)
    80    * [FIX] allow empty headers on DataFromReader [#2121](https://github.com/gin-gonic/gin/pull/2121)
    81    * Add mutex for protect Context.Keys map [#1391](https://github.com/gin-gonic/gin/pull/1391)
    82  ### ENHANCEMENTS
    83    * Add mitigation for log injection [#2277](https://github.com/gin-gonic/gin/pull/2277)
    84    * tree: range over nodes values [#2229](https://github.com/gin-gonic/gin/pull/2229)
    85    * tree: remove duplicate assignment [#2222](https://github.com/gin-gonic/gin/pull/2222)
    86    * chore: upgrade go-isatty and json-iterator/go [#2215](https://github.com/gin-gonic/gin/pull/2215)
    87    * path: sync code with httprouter [#2212](https://github.com/gin-gonic/gin/pull/2212)
    88    * Use zero-copy approach to convert types between string and byte slice [#2206](https://github.com/gin-gonic/gin/pull/2206)
    89    * Reuse bytes when cleaning the URL paths [#2179](https://github.com/gin-gonic/gin/pull/2179)
    90    * tree: remove one else statement [#2177](https://github.com/gin-gonic/gin/pull/2177)
    91    * tree: sync httprouter update (#2173) (#2172) [#2171](https://github.com/gin-gonic/gin/pull/2171)
    92    * tree: sync part httprouter codes and reduce if/else [#2163](https://github.com/gin-gonic/gin/pull/2163)
    93    * use http method constant [#2155](https://github.com/gin-gonic/gin/pull/2155)
    94    * upgrade go-validator to v10 [#2149](https://github.com/gin-gonic/gin/pull/2149)
    95    * Refactor redirect request in gin.go [#1970](https://github.com/gin-gonic/gin/pull/1970)
    96    * Add build tag nomsgpack [#1852](https://github.com/gin-gonic/gin/pull/1852)
    97  ### DOCS
    98    * docs(path): improve comments [#2223](https://github.com/gin-gonic/gin/pull/2223)
    99    * Renew README to fit the modification of SetCookie method [#2217](https://github.com/gin-gonic/gin/pull/2217)
   100    * Fix spelling [#2202](https://github.com/gin-gonic/gin/pull/2202)
   101    * Remove broken link from README. [#2198](https://github.com/gin-gonic/gin/pull/2198)
   102    * Update docs on Context.Done(), Context.Deadline() and Context.Err() [#2196](https://github.com/gin-gonic/gin/pull/2196)
   103    * Update validator to v10 [#2190](https://github.com/gin-gonic/gin/pull/2190)
   104    * upgrade go-validator to v10 for README [#2189](https://github.com/gin-gonic/gin/pull/2189)
   105    * Update to currently output [#2188](https://github.com/gin-gonic/gin/pull/2188)
   106    * Fix "Custom Validators" example [#2186](https://github.com/gin-gonic/gin/pull/2186)
   107    * Add project to README [#2165](https://github.com/gin-gonic/gin/pull/2165)
   108    * docs(benchmarks): for gin v1.5 [#2153](https://github.com/gin-gonic/gin/pull/2153)
   109    * Changed wording for clarity in README.md [#2122](https://github.com/gin-gonic/gin/pull/2122)
   110  ### MISC
   111    * ci support go1.14 [#2262](https://github.com/gin-gonic/gin/pull/2262)
   112    * chore: upgrade depend version [#2231](https://github.com/gin-gonic/gin/pull/2231)
   113    * Drop support go1.10 [#2147](https://github.com/gin-gonic/gin/pull/2147)
   114    * fix comment in `mode.go` [#2129](https://github.com/gin-gonic/gin/pull/2129)
   115  
   116  ## Gin v1.5.0
   117  
   118  - [FIX] Use DefaultWriter and DefaultErrorWriter for debug messages [#1891](https://github.com/gin-gonic/gin/pull/1891)
   119  - [NEW] Now you can parse the inline lowercase start structure [#1893](https://github.com/gin-gonic/gin/pull/1893)
   120  - [FIX] Some code improvements [#1909](https://github.com/gin-gonic/gin/pull/1909)
   121  - [FIX] Use encode replace json marshal increase json encoder speed [#1546](https://github.com/gin-gonic/gin/pull/1546)
   122  - [NEW] Hold matched route full path in the Context [#1826](https://github.com/gin-gonic/gin/pull/1826)
   123  - [FIX] Fix context.Params race condition on Copy() [#1841](https://github.com/gin-gonic/gin/pull/1841)
   124  - [NEW] Add context param query cache [#1450](https://github.com/gin-gonic/gin/pull/1450)
   125  - [FIX] Improve GetQueryMap performance [#1918](https://github.com/gin-gonic/gin/pull/1918)
   126  - [FIX] Improve get post data [#1920](https://github.com/gin-gonic/gin/pull/1920)
   127  - [FIX] Use context instead of x/net/context [#1922](https://github.com/gin-gonic/gin/pull/1922)
   128  - [FIX] Attempt to fix PostForm cache bug [#1931](https://github.com/gin-gonic/gin/pull/1931)
   129  - [NEW] Add support of multipart multi files [#1949](https://github.com/gin-gonic/gin/pull/1949)
   130  - [NEW] Support bind http header param [#1957](https://github.com/gin-gonic/gin/pull/1957)
   131  - [FIX] Drop support for go1.8 and go1.9 [#1933](https://github.com/gin-gonic/gin/pull/1933)
   132  - [FIX] Bugfix for the FullPath feature [#1919](https://github.com/gin-gonic/gin/pull/1919)
   133  - [FIX] Gin1.5 bytes.Buffer to strings.Builder [#1939](https://github.com/gin-gonic/gin/pull/1939)
   134  - [FIX] Upgrade github.com/ugorji/go/codec [#1969](https://github.com/gin-gonic/gin/pull/1969)
   135  - [NEW] Support bind unix time [#1980](https://github.com/gin-gonic/gin/pull/1980)
   136  - [FIX] Simplify code [#2004](https://github.com/gin-gonic/gin/pull/2004)
   137  - [NEW] Support negative Content-Length in DataFromReader [#1981](https://github.com/gin-gonic/gin/pull/1981)
   138  - [FIX] Identify terminal on a RISC-V architecture for auto-colored logs [#2019](https://github.com/gin-gonic/gin/pull/2019)
   139  - [BREAKING] `Context.JSONP()` now expects a semicolon (`;`) at the end [#2007](https://github.com/gin-gonic/gin/pull/2007)
   140  - [BREAKING] Upgrade default `binding.Validator` to v9 (see [its changelog](https://github.com/go-playground/validator/releases/tag/v9.0.0)) [#1015](https://github.com/gin-gonic/gin/pull/1015)
   141  - [NEW] Add `DisallowUnknownFields()` in `Context.BindJSON()` [#2028](https://github.com/gin-gonic/gin/pull/2028)
   142  - [NEW] Use specific `net.Listener` with `Engine.RunListener()` [#2023](https://github.com/gin-gonic/gin/pull/2023)
   143  - [FIX] Fix some typo [#2079](https://github.com/gin-gonic/gin/pull/2079) [#2080](https://github.com/gin-gonic/gin/pull/2080)
   144  - [FIX] Relocate binding body tests [#2086](https://github.com/gin-gonic/gin/pull/2086)
   145  - [FIX] Use Writer in Context.Status [#1606](https://github.com/gin-gonic/gin/pull/1606)
   146  - [FIX] `Engine.RunUnix()` now returns the error if it can't change the file mode [#2093](https://github.com/gin-gonic/gin/pull/2093)
   147  - [FIX] `RouterGroup.StaticFS()` leaked files. Now it closes them. [#2118](https://github.com/gin-gonic/gin/pull/2118)
   148  - [FIX] `Context.Request.FormFile` leaked file. Now it closes it. [#2114](https://github.com/gin-gonic/gin/pull/2114)
   149  - [FIX] Ignore walking on `form:"-"` mapping [#1943](https://github.com/gin-gonic/gin/pull/1943)
   150  
   151  ### Gin v1.4.0
   152  
   153  - [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules)  [#1569](https://github.com/gin-gonic/gin/pull/1569)
   154  - [NEW] Refactor of form mapping multipart request [#1829](https://github.com/gin-gonic/gin/pull/1829)
   155  - [FIX] Truncate Latency precision in long running request [#1830](https://github.com/gin-gonic/gin/pull/1830)
   156  - [FIX] IsTerm flag should not be affected by DisableConsoleColor method. [#1802](https://github.com/gin-gonic/gin/pull/1802)
   157  - [NEW] Supporting file binding [#1264](https://github.com/gin-gonic/gin/pull/1264)
   158  - [NEW] Add support for mapping arrays [#1797](https://github.com/gin-gonic/gin/pull/1797)
   159  - [FIX] Readme updates [#1793](https://github.com/gin-gonic/gin/pull/1793) [#1788](https://github.com/gin-gonic/gin/pull/1788) [1789](https://github.com/gin-gonic/gin/pull/1789)
   160  - [FIX] StaticFS: Fixed Logging two log lines on 404.  [#1805](https://github.com/gin-gonic/gin/pull/1805), [#1804](https://github.com/gin-gonic/gin/pull/1804)
   161  - [NEW] Make context.Keys available as LogFormatterParams [#1779](https://github.com/gin-gonic/gin/pull/1779)
   162  - [NEW] Use internal/json for Marshal/Unmarshal [#1791](https://github.com/gin-gonic/gin/pull/1791)
   163  - [NEW] Support mapping time.Duration [#1794](https://github.com/gin-gonic/gin/pull/1794)
   164  - [NEW] Refactor form mappings [#1749](https://github.com/gin-gonic/gin/pull/1749)
   165  - [NEW] Added flag to context.Stream indicates if client disconnected in middle of stream [#1252](https://github.com/gin-gonic/gin/pull/1252)
   166  - [FIX] Moved [examples](https://github.com/gin-gonic/examples) to stand alone Repo [#1775](https://github.com/gin-gonic/gin/pull/1775)
   167  - [NEW] Extend context.File to allow for the content-disposition attachments via a new method context.Attachment [#1260](https://github.com/gin-gonic/gin/pull/1260)
   168  - [FIX] Support HTTP content negotiation wildcards [#1112](https://github.com/gin-gonic/gin/pull/1112)
   169  - [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash [#1238](https://github.com/gin-gonic/gin/pull/1238)
   170  - [FIX] context.Copy() race condition [#1020](https://github.com/gin-gonic/gin/pull/1020)
   171  - [NEW] Add context.HandlerNames() [#1729](https://github.com/gin-gonic/gin/pull/1729)
   172  - [FIX] Change color methods to public in the defaultLogger. [#1771](https://github.com/gin-gonic/gin/pull/1771)
   173  - [FIX] Update writeHeaders method to use http.Header.Set [#1722](https://github.com/gin-gonic/gin/pull/1722)
   174  - [NEW] Add response size to LogFormatterParams [#1752](https://github.com/gin-gonic/gin/pull/1752)
   175  - [NEW] Allow ignoring field on form mapping [#1733](https://github.com/gin-gonic/gin/pull/1733)
   176  - [NEW] Add a function to force color in console output. [#1724](https://github.com/gin-gonic/gin/pull/1724)
   177  - [FIX] Context.Next() - recheck len of handlers on every iteration. [#1745](https://github.com/gin-gonic/gin/pull/1745)
   178  - [FIX] Fix all errcheck warnings [#1739](https://github.com/gin-gonic/gin/pull/1739) [#1653](https://github.com/gin-gonic/gin/pull/1653)
   179  - [NEW] context: inherits context cancellation and deadline from http.Request context for Go>=1.7 [#1690](https://github.com/gin-gonic/gin/pull/1690)
   180  - [NEW] Binding for URL Params [#1694](https://github.com/gin-gonic/gin/pull/1694)
   181  - [NEW] Add LoggerWithFormatter method [#1677](https://github.com/gin-gonic/gin/pull/1677)
   182  - [FIX] CI testing updates [#1671](https://github.com/gin-gonic/gin/pull/1671) [#1670](https://github.com/gin-gonic/gin/pull/1670) [#1682](https://github.com/gin-gonic/gin/pull/1682) [#1669](https://github.com/gin-gonic/gin/pull/1669)
   183  - [FIX] StaticFS(): Send 404 when path does not exist [#1663](https://github.com/gin-gonic/gin/pull/1663)
   184  - [FIX] Handle nil body for JSON binding [#1638](https://github.com/gin-gonic/gin/pull/1638)
   185  - [FIX] Support bind uri param [#1612](https://github.com/gin-gonic/gin/pull/1612)
   186  - [FIX] recovery: fix issue with syscall import on google app engine [#1640](https://github.com/gin-gonic/gin/pull/1640)
   187  - [FIX] Make sure the debug log contains line breaks [#1650](https://github.com/gin-gonic/gin/pull/1650)
   188  - [FIX] Panic stack trace being printed during recovery of broken pipe [#1089](https://github.com/gin-gonic/gin/pull/1089) [#1259](https://github.com/gin-gonic/gin/pull/1259)
   189  - [NEW] RunFd method to run http.Server through a file descriptor [#1609](https://github.com/gin-gonic/gin/pull/1609)
   190  - [NEW] Yaml binding support [#1618](https://github.com/gin-gonic/gin/pull/1618)
   191  - [FIX] Pass MaxMultipartMemory when FormFile is called [#1600](https://github.com/gin-gonic/gin/pull/1600)
   192  - [FIX] LoadHTML* tests [#1559](https://github.com/gin-gonic/gin/pull/1559)
   193  - [FIX] Removed use of sync.pool from HandleContext [#1565](https://github.com/gin-gonic/gin/pull/1565)
   194  - [FIX] Format output log to os.Stderr [#1571](https://github.com/gin-gonic/gin/pull/1571)
   195  - [FIX] Make logger use a yellow background and a darkgray text for legibility [#1570](https://github.com/gin-gonic/gin/pull/1570)
   196  - [FIX] Remove sensitive request information from panic log. [#1370](https://github.com/gin-gonic/gin/pull/1370)
   197  - [FIX] log.Println() does not print timestamp [#829](https://github.com/gin-gonic/gin/pull/829) [#1560](https://github.com/gin-gonic/gin/pull/1560)
   198  - [NEW] Add PureJSON renderer [#694](https://github.com/gin-gonic/gin/pull/694)
   199  - [FIX] Add missing copyright and update if/else [#1497](https://github.com/gin-gonic/gin/pull/1497)
   200  - [FIX] Update msgpack usage [#1498](https://github.com/gin-gonic/gin/pull/1498)
   201  - [FIX] Use protobuf on render [#1496](https://github.com/gin-gonic/gin/pull/1496)
   202  - [FIX] Add support for Protobuf format response [#1479](https://github.com/gin-gonic/gin/pull/1479)
   203  - [NEW] Set default time format in form binding [#1487](https://github.com/gin-gonic/gin/pull/1487)
   204  - [FIX] Add BindXML and ShouldBindXML [#1485](https://github.com/gin-gonic/gin/pull/1485)
   205  - [NEW] Upgrade dependency libraries [#1491](https://github.com/gin-gonic/gin/pull/1491)
   206  
   207  
   208  ## Gin v1.3.0
   209  
   210  - [NEW] Add [`func (*Context) QueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.QueryMap), [`func (*Context) GetQueryMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetQueryMap), [`func (*Context) PostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.PostFormMap) and [`func (*Context) GetPostFormMap`](https://godoc.org/github.com/gin-gonic/gin#Context.GetPostFormMap) to support `type map[string]string` as query string or form parameters, see [#1383](https://github.com/gin-gonic/gin/pull/1383)
   211  - [NEW] Add [`func (*Context) AsciiJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.AsciiJSON), see [#1358](https://github.com/gin-gonic/gin/pull/1358)
   212  - [NEW] Add `Pusher()` in [`type ResponseWriter`](https://godoc.org/github.com/gin-gonic/gin#ResponseWriter) for supporting http2 push, see [#1273](https://github.com/gin-gonic/gin/pull/1273)
   213  - [NEW] Add [`func (*Context) DataFromReader`](https://godoc.org/github.com/gin-gonic/gin#Context.DataFromReader) for serving dynamic data, see [#1304](https://github.com/gin-gonic/gin/pull/1304)
   214  - [NEW] Add [`func (*Context) ShouldBindBodyWith`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindBodyWith) allowing to call binding multiple times, see [#1341](https://github.com/gin-gonic/gin/pull/1341)
   215  - [NEW] Support pointers in form binding, see [#1336](https://github.com/gin-gonic/gin/pull/1336)
   216  - [NEW] Add [`func (*Context) JSONP`](https://godoc.org/github.com/gin-gonic/gin#Context.JSONP), see [#1333](https://github.com/gin-gonic/gin/pull/1333)
   217  - [NEW] Support default value in form binding, see [#1138](https://github.com/gin-gonic/gin/pull/1138)
   218  - [NEW] Expose validator engine in [`type StructValidator`](https://godoc.org/github.com/gin-gonic/gin/binding#StructValidator), see [#1277](https://github.com/gin-gonic/gin/pull/1277)
   219  - [NEW] Add [`func (*Context) ShouldBind`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBind), [`func (*Context) ShouldBindQuery`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindQuery) and [`func (*Context) ShouldBindJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.ShouldBindJSON), see [#1047](https://github.com/gin-gonic/gin/pull/1047)
   220  - [NEW] Add support for `time.Time` location in form binding, see [#1117](https://github.com/gin-gonic/gin/pull/1117)
   221  - [NEW] Add [`func (*Context) BindQuery`](https://godoc.org/github.com/gin-gonic/gin#Context.BindQuery), see [#1029](https://github.com/gin-gonic/gin/pull/1029)
   222  - [NEW] Make [jsonite](https://github.com/json-iterator/go) optional with build tags, see [#1026](https://github.com/gin-gonic/gin/pull/1026)
   223  - [NEW] Show query string in logger, see [#999](https://github.com/gin-gonic/gin/pull/999)
   224  - [NEW] Add [`func (*Context) SecureJSON`](https://godoc.org/github.com/gin-gonic/gin#Context.SecureJSON), see [#987](https://github.com/gin-gonic/gin/pull/987) and [#993](https://github.com/gin-gonic/gin/pull/993)
   225  - [DEPRECATE] `func (*Context) GetCookie` for [`func (*Context) Cookie`](https://godoc.org/github.com/gin-gonic/gin#Context.Cookie)
   226  - [FIX] Don't display color tags if [`func DisableConsoleColor`](https://godoc.org/github.com/gin-gonic/gin#DisableConsoleColor) called, see [#1072](https://github.com/gin-gonic/gin/pull/1072)
   227  - [FIX] Gin Mode `""` when calling [`func Mode`](https://godoc.org/github.com/gin-gonic/gin#Mode) now returns `const DebugMode`, see [#1250](https://github.com/gin-gonic/gin/pull/1250)
   228  - [FIX] `Flush()` now doesn't overwrite `responseWriter` status code, see [#1460](https://github.com/gin-gonic/gin/pull/1460)
   229  
   230  ## Gin 1.2.0
   231  
   232  - [NEW] Switch from godeps to govendor
   233  - [NEW] Add support for Let's Encrypt via gin-gonic/autotls
   234  - [NEW] Improve README examples and add extra at examples folder
   235  - [NEW] Improved support with App Engine
   236  - [NEW] Add custom template delimiters, see #860
   237  - [NEW] Add Template Func Maps, see #962
   238  - [NEW] Add \*context.Handler(), see #928
   239  - [NEW] Add \*context.GetRawData()
   240  - [NEW] Add \*context.GetHeader() (request)
   241  - [NEW] Add \*context.AbortWithStatusJSON() (JSON content type)
   242  - [NEW] Add \*context.Keys type cast helpers
   243  - [NEW] Add \*context.ShouldBindWith()
   244  - [NEW] Add \*context.MustBindWith()
   245  - [NEW] Add \*engine.SetFuncMap()
   246  - [DEPRECATE] On next release: \*context.BindWith(), see #855
   247  - [FIX] Refactor render
   248  - [FIX] Reworked tests
   249  - [FIX] logger now supports cygwin
   250  - [FIX] Use X-Forwarded-For before X-Real-Ip
   251  - [FIX] time.Time binding (#904)
   252  
   253  ## Gin 1.1.4
   254  
   255  - [NEW] Support google appengine for IsTerminal func
   256  
   257  ## Gin 1.1.3
   258  
   259  - [FIX] Reverted Logger: skip ANSI color commands
   260  
   261  ## Gin 1.1
   262  
   263  - [NEW] Implement QueryArray and PostArray methods
   264  - [NEW] Refactor GetQuery and GetPostForm
   265  - [NEW] Add contribution guide
   266  - [FIX] Corrected typos in README
   267  - [FIX] Removed additional Iota
   268  - [FIX] Changed imports to gopkg instead of github in README (#733)
   269  - [FIX] Logger: skip ANSI color commands if output is not a tty
   270  
   271  ## Gin 1.0rc2 (...)
   272  
   273  - [PERFORMANCE] Fast path for writing Content-Type.
   274  - [PERFORMANCE] Much faster 404 routing
   275  - [PERFORMANCE] Allocation optimizations
   276  - [PERFORMANCE] Faster root tree lookup
   277  - [PERFORMANCE] Zero overhead, String() and JSON() rendering.
   278  - [PERFORMANCE] Faster ClientIP parsing
   279  - [PERFORMANCE] Much faster SSE implementation
   280  - [NEW] Benchmarks suite
   281  - [NEW] Bind validation can be disabled and replaced with custom validators.
   282  - [NEW] More flexible HTML render
   283  - [NEW] Multipart and PostForm bindings
   284  - [NEW] Adds method to return all the registered routes
   285  - [NEW] Context.HandlerName() returns the main handler's name
   286  - [NEW] Adds Error.IsType() helper
   287  - [FIX] Binding multipart form
   288  - [FIX] Integration tests
   289  - [FIX] Crash when binding non struct object in Context.
   290  - [FIX] RunTLS() implementation
   291  - [FIX] Logger() unit tests
   292  - [FIX] Adds SetHTMLTemplate() warning
   293  - [FIX] Context.IsAborted()
   294  - [FIX] More unit tests
   295  - [FIX] JSON, XML, HTML renders accept custom content-types
   296  - [FIX] gin.AbortIndex is unexported
   297  - [FIX] Better approach to avoid directory listing in StaticFS()
   298  - [FIX] Context.ClientIP() always returns the IP with trimmed spaces.
   299  - [FIX] Better warning when running in debug mode.
   300  - [FIX] Google App Engine integration. debugPrint does not use os.Stdout
   301  - [FIX] Fixes integer overflow in error type
   302  - [FIX] Error implements the json.Marshaller interface
   303  - [FIX] MIT license in every file
   304  
   305  
   306  ## Gin 1.0rc1 (May 22, 2015)
   307  
   308  - [PERFORMANCE] Zero allocation router
   309  - [PERFORMANCE] Faster JSON, XML and text rendering
   310  - [PERFORMANCE] Custom hand optimized HttpRouter for Gin
   311  - [PERFORMANCE] Misc code optimizations. Inlining, tail call optimizations
   312  - [NEW] Built-in support for golang.org/x/net/context
   313  - [NEW] Any(path, handler). Create a route that matches any path
   314  - [NEW] Refactored rendering pipeline (faster and static typed)
   315  - [NEW] Refactored errors API
   316  - [NEW] IndentedJSON() prints pretty JSON
   317  - [NEW] Added gin.DefaultWriter
   318  - [NEW] UNIX socket support
   319  - [NEW] RouterGroup.BasePath is exposed
   320  - [NEW] JSON validation using go-validate-yourself (very powerful options)
   321  - [NEW] Completed suite of unit tests
   322  - [NEW] HTTP streaming with c.Stream()
   323  - [NEW] StaticFile() creates a router for serving just one file.
   324  - [NEW] StaticFS() has an option to disable directory listing.
   325  - [NEW] StaticFS() for serving static files through virtual filesystems
   326  - [NEW] Server-Sent Events native support
   327  - [NEW] WrapF() and WrapH() helpers for wrapping http.HandlerFunc and http.Handler
   328  - [NEW] Added LoggerWithWriter() middleware
   329  - [NEW] Added RecoveryWithWriter() middleware
   330  - [NEW] Added DefaultPostFormValue()
   331  - [NEW] Added DefaultFormValue()
   332  - [NEW] Added DefaultParamValue()
   333  - [FIX] BasicAuth() when using custom realm
   334  - [FIX] Bug when serving static files in nested routing group
   335  - [FIX] Redirect using built-in http.Redirect()
   336  - [FIX] Logger when printing the requested path
   337  - [FIX] Documentation typos
   338  - [FIX] Context.Engine renamed to Context.engine
   339  - [FIX] Better debugging messages
   340  - [FIX] ErrorLogger
   341  - [FIX] Debug HTTP render
   342  - [FIX] Refactored binding and render modules
   343  - [FIX] Refactored Context initialization
   344  - [FIX] Refactored BasicAuth()
   345  - [FIX] NoMethod/NoRoute handlers
   346  - [FIX] Hijacking http
   347  - [FIX] Better support for Google App Engine (using log instead of fmt)
   348  
   349  
   350  ## Gin 0.6 (Mar 9, 2015)
   351  
   352  - [NEW] Support multipart/form-data
   353  - [NEW] NoMethod handler
   354  - [NEW] Validate sub structures
   355  - [NEW] Support for HTTP Realm Auth
   356  - [FIX] Unsigned integers in binding
   357  - [FIX] Improve color logger
   358  
   359  
   360  ## Gin 0.5 (Feb 7, 2015)
   361  
   362  - [NEW] Content Negotiation
   363  - [FIX] Solved security bug that allow a client to spoof ip
   364  - [FIX] Fix unexported/ignored fields in binding
   365  
   366  
   367  ## Gin 0.4 (Aug 21, 2014)
   368  
   369  - [NEW] Development mode
   370  - [NEW] Unit tests
   371  - [NEW] Add Content.Redirect()
   372  - [FIX] Deferring WriteHeader()
   373  - [FIX] Improved documentation for model binding
   374  
   375  
   376  ## Gin 0.3 (Jul 18, 2014)
   377  
   378  - [PERFORMANCE] Normal log and error log are printed in the same call.
   379  - [PERFORMANCE] Improve performance of NoRouter()
   380  - [PERFORMANCE] Improve context's memory locality, reduce CPU cache faults.
   381  - [NEW] Flexible rendering API
   382  - [NEW] Add Context.File()
   383  - [NEW] Add shortcut RunTLS() for http.ListenAndServeTLS
   384  - [FIX] Rename NotFound404() to NoRoute()
   385  - [FIX] Errors in context are purged
   386  - [FIX] Adds HEAD method in Static file serving
   387  - [FIX] Refactors Static() file serving
   388  - [FIX] Using keyed initialization to fix app-engine integration
   389  - [FIX] Can't unmarshal JSON array, #63
   390  - [FIX] Renaming Context.Req to Context.Request
   391  - [FIX] Check application/x-www-form-urlencoded when parsing form
   392  
   393  
   394  ## Gin 0.2b (Jul 08, 2014)
   395  - [PERFORMANCE] Using sync.Pool to allocatio/gc overhead
   396  - [NEW] Travis CI integration
   397  - [NEW] Completely new logger
   398  - [NEW] New API for serving static files. gin.Static()
   399  - [NEW] gin.H() can be serialized into XML
   400  - [NEW] Typed errors. Errors can be typed. Internet/external/custom.
   401  - [NEW] Support for Godeps
   402  - [NEW] Travis/Godocs badges in README
   403  - [NEW] New Bind() and BindWith() methods for parsing request body.
   404  - [NEW] Add Content.Copy()
   405  - [NEW] Add context.LastError()
   406  - [NEW] Add shortcut for OPTIONS HTTP method
   407  - [FIX] Tons of README fixes
   408  - [FIX] Header is written before body
   409  - [FIX] BasicAuth() and changes API a little bit
   410  - [FIX] Recovery() middleware only prints panics
   411  - [FIX] Context.Get() does not panic anymore. Use MustGet() instead.
   412  - [FIX] Multiple http.WriteHeader() in NotFound handlers
   413  - [FIX] Engine.Run() panics if http server can't be set up
   414  - [FIX] Crash when route path doesn't start with '/'
   415  - [FIX] Do not update header when status code is negative
   416  - [FIX] Setting response headers before calling WriteHeader in context.String()
   417  - [FIX] Add MIT license
   418  - [FIX] Changes behaviour of ErrorLogger() and Logger()