Gin v1.5.0 Release Notes

Release Date: 2019-11-28 // 8 days 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

    • 0️⃣ [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

Previous changes from v1.4.0

    • 👍 [NEW] Support for Go Modules #1569
    • ♻️ [NEW] Refactor of form mapping multipart request #1829
    • 🚤 [FIX] Truncate Latency precision in long running request #1830
    • [FIX] IsTerm flag should not be affected by DisableConsoleColor method. #1802
    • 👍 [NEW] Supporting file binding #1264
    • 👍 [NEW] Add support for mapping arrays #1797
    • ⚡️ [FIX] Readme updates #1793 #1788 1789
    • 🛠 [FIX] StaticFS: Fixed Logging two log lines on 404. #1805, #1804
    • [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
    • 🚚 [FIX] Moved examples to stand alone Repo #1775
    • [NEW] Extend context.File to allow for the content-disposition attachments via a new method context.Attachment #1260
    • 👍 [FIX] Support HTTP content negotiation wildcards #1112
    • [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash #1238
    • [FIX] context.Copy() race condition #1020
    • [NEW] Add context.HandlerNames() #1729
    • 0️⃣ [FIX] Change color methods to public in the defaultLogger. #1771
    • ⚡️ [FIX] Update writeHeaders method to use http.Header.Set #1722
    • [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
    • [FIX] Context.Next() - recheck len of handlers on every iteration. #1745
    • ⚠ [FIX] Fix all errcheck warnings #1739 #1653
    • [NEW] context: inherits context cancellation and deadline from http.Request context for Go>=1.7 #1690
    • [NEW] Binding for URL Params #1694
    • [NEW] Add LoggerWithFormatter method #1677
    • ⚡️ [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
    • [NEW] RunFd method to run http.Server through a file descriptor #1609
    • 👍 [NEW] Yaml binding support #1618
    • [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
    • [NEW] Add PureJSON renderer #694
    • ⚡️ [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
    • 0️⃣ [NEW] Set default time format in form binding #1487
    • [FIX] Add BindXML and ShouldBindXML #1485
    • ⬆️ [NEW] Upgrade dependency libraries #1491