CHANGELOG.md
16.3 KB
Gin 1.4.0
- [NEW] Support for Go Modules #1569
- [NEW] Refactor of form mapping multipart requesta #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-dispositon 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
- [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
- [NEW] Set default time format in form binding #1487
- [FIX] Add BindXML and ShouldBindXML #1485
- [NEW] Upgrade dependency libraries #1491
Gin 1.3.0
- [NEW] Add <code>func (*Context) QueryMap</code>, <code>func (*Context) GetQueryMap</code>, <code>func (*Context) PostFormMap</code> and <code>func (*Context) GetPostFormMap</code> to support
type map[string]string
as query string or form parameters, see #1383 - [NEW] Add <code>func (*Context) AsciiJSON</code>, see #1358
- [NEW] Add
Pusher()
in <code>type ResponseWriter</code> for supporting http2 push, see #1273 - [NEW] Add <code>func (*Context) DataFromReader</code> for serving dynamic data, see #1304
- [NEW] Add <code>func (*Context) ShouldBindBodyWith</code> allowing to call binding multiple times, see #1341
- [NEW] Support pointers in form binding, see #1336
- [NEW] Add <code>func (*Context) JSONP</code>, see #1333
- [NEW] Support default value in form binding, see #1138
- [NEW] Expose validator engine in <code>type StructValidator</code>, see #1277
- [NEW] Add <code>func (*Context) ShouldBind</code>, <code>func (*Context) ShouldBindQuery</code> and <code>func (*Context) ShouldBindJSON</code>, see #1047
- [NEW] Add support for
time.Time
location in form binding, see #1117 - [NEW] Add <code>func (*Context) BindQuery</code>, see #1029
- [NEW] Make jsonite optional with build tags, see #1026
- [NEW] Show query string in logger, see #999
- [NEW] Add <code>func (*Context) SecureJSON</code>, see #987 and #993
- [DEPRECATE]
func (*Context) GetCookie
for <code>func (*Context) Cookie</code> - [FIX] Don't display color tags if <code>func DisableConsoleColor</code> called, see #1072
- [FIX] Gin Mode
""
when calling <code>func Mode</code> now returnsconst DebugMode
, see #1250 - [FIX]
Flush()
now doesn't overwriteresponseWriter
status code, see #1460
Gin 1.2.0
- [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)
Gin 1.1.4
- [NEW] Support google appengine for IsTerminal func
Gin 1.1.3
- [FIX] Reverted Logger: skip ANSI color commands
Gin 1.1
- [NEW] Implement QueryArray and PostArray methods
- [NEW] Refactor GetQuery and GetPostForm
- [NEW] Add contribution guide
- [FIX] Corrected typos in README
- [FIX] Removed additional Iota
- [FIX] Changed imports to gopkg instead of github in README (#733)
- [FIX] Logger: skip ANSI color commands if output is not a tty
Gin 1.0rc2 (...)
- [PERFORMANCE] Fast path for writing Content-Type.
- [PERFORMANCE] Much faster 404 routing
- [PERFORMANCE] Allocation optimizations
- [PERFORMANCE] Faster root tree lookup
- [PERFORMANCE] Zero overhead, String() and JSON() rendering.
- [PERFORMANCE] Faster ClientIP parsing
- [PERFORMANCE] Much faster SSE implementation
- [NEW] Benchmarks suite
- [NEW] Bind validation can be disabled and replaced with custom validators.
- [NEW] More flexible HTML render
- [NEW] Multipart and PostForm bindings
- [NEW] Adds method to return all the registered routes
- [NEW] Context.HandlerName() returns the main handler's name
- [NEW] Adds Error.IsType() helper
- [FIX] Binding multipart form
- [FIX] Integration tests
- [FIX] Crash when binding non struct object in Context.
- [FIX] RunTLS() implementation
- [FIX] Logger() unit tests
- [FIX] Adds SetHTMLTemplate() warning
- [FIX] Context.IsAborted()
- [FIX] More unit tests
- [FIX] JSON, XML, HTML renders accept custom content-types
- [FIX] gin.AbortIndex is unexported
- [FIX] Better approach to avoid directory listing in StaticFS()
- [FIX] Context.ClientIP() always returns the IP with trimmed spaces.
- [FIX] Better warning when running in debug mode.
- [FIX] Google App Engine integration. debugPrint does not use os.Stdout
- [FIX] Fixes integer overflow in error type
- [FIX] Error implements the json.Marshaller interface
- [FIX] MIT license in every file
Gin 1.0rc1 (May 22, 2015)
- [PERFORMANCE] Zero allocation router
- [PERFORMANCE] Faster JSON, XML and text rendering
- [PERFORMANCE] Custom hand optimized HttpRouter for Gin
- [PERFORMANCE] Misc code optimizations. Inlining, tail call optimizations
- [NEW] Built-in support for golang.org/x/net/context
- [NEW] Any(path, handler). Create a route that matches any path
- [NEW] Refactored rendering pipeline (faster and static typeded)
- [NEW] Refactored errors API
- [NEW] IndentedJSON() prints pretty JSON
- [NEW] Added gin.DefaultWriter
- [NEW] UNIX socket support
- [NEW] RouterGroup.BasePath is exposed
- [NEW] JSON validation using go-validate-yourself (very powerful options)
- [NEW] Completed suite of unit tests
- [NEW] HTTP streaming with c.Stream()
- [NEW] StaticFile() creates a router for serving just one file.
- [NEW] StaticFS() has an option to disable directory listing.
- [NEW] StaticFS() for serving static files through virtual filesystems
- [NEW] Server-Sent Events native support
- [NEW] WrapF() and WrapH() helpers for wrapping http.HandlerFunc and http.Handler
- [NEW] Added LoggerWithWriter() middleware
- [NEW] Added RecoveryWithWriter() middleware
- [NEW] Added DefaultPostFormValue()
- [NEW] Added DefaultFormValue()
- [NEW] Added DefaultParamValue()
- [FIX] BasicAuth() when using custom realm
- [FIX] Bug when serving static files in nested routing group
- [FIX] Redirect using built-in http.Redirect()
- [FIX] Logger when printing the requested path
- [FIX] Documentation typos
- [FIX] Context.Engine renamed to Context.engine
- [FIX] Better debugging messages
- [FIX] ErrorLogger
- [FIX] Debug HTTP render
- [FIX] Refactored binding and render modules
- [FIX] Refactored Context initialization
- [FIX] Refactored BasicAuth()
- [FIX] NoMethod/NoRoute handlers
- [FIX] Hijacking http
- [FIX] Better support for Google App Engine (using log instead of fmt)
Gin 0.6 (Mar 9, 2015)
- [NEW] Support multipart/form-data
- [NEW] NoMethod handler
- [NEW] Validate sub structures
- [NEW] Support for HTTP Realm Auth
- [FIX] Unsigned integers in binding
- [FIX] Improve color logger
Gin 0.5 (Feb 7, 2015)
- [NEW] Content Negotiation
- [FIX] Solved security bug that allow a client to spoof ip
- [FIX] Fix unexported/ignored fields in binding
Gin 0.4 (Aug 21, 2014)
- [NEW] Development mode
- [NEW] Unit tests
- [NEW] Add Content.Redirect()
- [FIX] Deferring WriteHeader()
- [FIX] Improved documentation for model binding
Gin 0.3 (Jul 18, 2014)
- [PERFORMANCE] Normal log and error log are printed in the same call.
- [PERFORMANCE] Improve performance of NoRouter()
- [PERFORMANCE] Improve context's memory locality, reduce CPU cache faults.
- [NEW] Flexible rendering API
- [NEW] Add Context.File()
- [NEW] Add shorcut RunTLS() for http.ListenAndServeTLS
- [FIX] Rename NotFound404() to NoRoute()
- [FIX] Errors in context are purged
- [FIX] Adds HEAD method in Static file serving
- [FIX] Refactors Static() file serving
- [FIX] Using keyed initialization to fix app-engine integration
- [FIX] Can't unmarshal JSON array, #63
- [FIX] Renaming Context.Req to Context.Request
- [FIX] Check application/x-www-form-urlencoded when parsing form
Gin 0.2b (Jul 08, 2014)
- [PERFORMANCE] Using sync.Pool to allocatio/gc overhead
- [NEW] Travis CI integration
- [NEW] Completely new logger
- [NEW] New API for serving static files. gin.Static()
- [NEW] gin.H() can be serialized into XML
- [NEW] Typed errors. Errors can be typed. Internet/external/custom.
- [NEW] Support for Godeps
- [NEW] Travis/Godocs badges in README
- [NEW] New Bind() and BindWith() methods for parsing request body.
- [NEW] Add Content.Copy()
- [NEW] Add context.LastError()
- [NEW] Add shorcut for OPTIONS HTTP method
- [FIX] Tons of README fixes
- [FIX] Header is written before body
- [FIX] BasicAuth() and changes API a little bit
- [FIX] Recovery() middleware only prints panics
- [FIX] Context.Get() does not panic anymore. Use MustGet() instead.
- [FIX] Multiple http.WriteHeader() in NotFound handlers
- [FIX] Engine.Run() panics if http server can't be setted up
- [FIX] Crash when route path doesn't start with '/'
- [FIX] Do not update header when status code is negative
- [FIX] Setting response headers before calling WriteHeader in context.String()
- [FIX] Add MIT license
- [FIX] Changes behaviour of ErrorLogger() and Logger()