85f3e78abc 
					 
					
						
						
							
							chore: remove else instead of return/continue ( #1502 )  
						
						 
						
						... 
						
						
						
						As[ Effective Go](https://golang.org/doc/effective_go.html?#if ) about `if` said, remove else statement instead of return/continue statement. 
						
						
					 
					
						2018-08-20 21:49:24 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0ebd42d0a9 
					 
					
						
						
							
							Update jsoniter.go ( #1500 )  
						
						 
						
						... 
						
						
						
						add newencoder to fix compile error for -tags=jsoniter 
						
						
					 
					
						2018-08-20 18:25:45 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c6110f970c 
					 
					
						
						
							
							Add PureJSON renderer ( #694 )  
						
						 
						
						... 
						
						
						
						Closes  #693  
						
						
					 
					
						2018-08-20 15:15:31 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b7bb9baa64 
					 
					
						
						
							
							chore: add missing copyright and update if/else ( #1497 )  
						
						 
						
						
						
						
					 
					
						2018-08-19 22:52:43 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						32b58e0fd2 
					 
					
						
						
							
							render: update msgpack usage ( #1498 )  
						
						 
						
						... 
						
						
						
						please see msgpack usage: https://github.com/ugorji/go/tree/master/codec#usage  
						
						
					 
					
						2018-08-19 22:14:02 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6073a79ee0 
					 
					
						
						
							
							not use protobuf on context but use it on render ( #1496 )  
						
						 
						
						
						
						
					 
					
						2018-08-19 17:39:58 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						efdd3c8b81 
					 
					
						
						
							
							Add support for Protobuf format response and unit test ( #1479 )  
						
						 
						
						... 
						
						
						
						`Gin` now have the `protobufBinding` function to check the request format, but didn't have a protobuf response function like `c.YAML()`.
In our company [ByteDance](http://bytedance.com/ ), the largest internet company using golang in China, we use `gin` to transfer __Protobuf__  instead of __Json__, we have to write some internal library to make some wrappers to achieve that, and the code is not elegant. So we really want such a feature. 
						
						
					 
					
						2018-08-19 10:45:56 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f856aa85cd 
					 
					
						
						
							
							Update readme about the version of gin ( #1494 )  
						
						 
						
						
						
						
					 
					
						2018-08-17 14:59:55 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f5451bd645 
					 
					
						
						
							
							Fix typo in README [ci skip] ( #1492 )  
						
						 
						
						
						
						
					 
					
						2018-08-17 11:33:23 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a643d20605 
					 
					
						
						
							
							readme: fix users link ( #1493 )  
						
						 
						
						
						
						
					 
					
						2018-08-17 11:21:14 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7eb0f74b89 
					 
					
						
						
							
							Set default time format in form binding ( #1487 )  
						
						 
						
						
						
						
					 
					
						2018-08-17 09:41:56 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						40ab9de4b5 
					 
					
						
						
							
							Add BindXML AND ShouldBindXML  #1484  ( #1485 )  
						
						 
						
						... 
						
						
						
						Add BindXML AND ShouldBindXML #1484  
						
						
					 
					
						2018-08-17 09:12:15 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bef6c56c89 
					 
					
						
						
							
							chore: upgrade dependency library version ( #1491 )  
						
						 
						
						... 
						
						
						
						upgrade lib version, and upgrade `github.com/json-iterator/go` to add two libs. 
						
						
					 
					
						2018-08-16 17:38:17 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						64a4548642 
					 
					
						
						
							
							Fix typo in readme ( #1490 )  
						
						 
						
						
						
						
					 
					
						2018-08-15 13:42:12 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b869fe1415 
					 
					
						
						
							
							docs: add changelog for v1.3.0, update authors and version const ( #1478 )  
						
						 
						
						... 
						
						
						
						* docs: add changelog for v1.3.0, update authors and version const
*  add link for every referenced pull request (#1481 )
* docs: add changelog for v1.3.0, update authors and version const
* add link for pr 
						
						
					 
					
						2018-08-14 10:58:52 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6c8a973134 
					 
					
						
						
							
							add issue and pull request template explain ( #1483 )  
						
						 
						
						... 
						
						
						
						* add issue/pr template explain
* add issue/pr template explain 
						
						
					 
					
						2018-08-14 11:35:13 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f45c928a15 
					 
					
						
						
							
							chore: use http.Status* instead of hard code ( #1482 )  
						
						 
						
						
						
						
					 
					
						2018-08-14 09:51:56 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8aef947f6e 
					 
					
						
						
							
							docs: remove double negative in README.md ( #1480 )  
						
						 
						
						... 
						
						
						
						"not match neither" means that it will match. 
						
						
					 
					
						2018-08-12 22:54:22 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6159213462 
					 
					
						
						
							
							unify test data ( #1417 )  
						
						 
						
						... 
						
						
						
						mkdir a test data dir. 
						
						
					 
					
						2018-08-12 23:38:31 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1ae32f3a2c 
					 
					
						
						
							
							improve render code coverage ( #1474 )  
						
						 
						
						... 
						
						
						
						all code coverage > 99% 
						
						
					 
					
						2018-08-12 22:02:37 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						202db4fb11 
					 
					
						
						
							
							improve utils code coverage ( #1473 )  
						
						 
						
						
						
						
					 
					
						2018-08-12 21:38:07 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e5bb4f62a2 
					 
					
						
						
							
							chore: add return or remove else for reduce indent ( #1470 )  
						
						 
						
						
						
						
					 
					
						2018-08-12 21:17:57 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7e64d32269 
					 
					
						
						
							
							Attempt to  fix   #1462  ( #1463 )  
						
						 
						
						... 
						
						
						
						#1462  
						
						
					 
					
						2018-08-12 10:12:33 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8fc8ce0472 
					 
					
						
						
							
							small enhance for cleanPath ( #1469 )  
						
						 
						
						... 
						
						
						
						from httprouter patch: https://github.com/julienschmidt/httprouter/pull/243  
						
						
					 
					
						2018-08-10 20:50:23 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1f1bc429ed 
					 
					
						
						
							
							chore: add test case for source/function of recovery.go ( #1467 )  
						
						 
						
						
						
						
					 
					
						2018-08-09 17:20:06 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9666ba6738 
					 
					
						
						
							
							chore: update top bar header ( #1461 )  
						
						 
						
						
						
						
					 
					
						2018-08-07 13:49:31 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0552c3bc3a 
					 
					
						
						
							
							flush operation will overwrite the origin status code ( #1460 )  
						
						 
						
						... 
						
						
						
						The status of responseWriter will be overwrite if flush was called. This is caused by the Flush of http.response.Flush(). 
						
						
					 
					
						2018-08-07 12:41:28 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9b7e7bdce6 
					 
					
						
						
							
							Add tests for context.Stream ( #1433 )  
						
						 
						
						
						
						
					 
					
						2018-08-07 06:44:32 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e2b4cf6e2d 
					 
					
						
						
							
							interface implement type check ( #1459 )  
						
						 
						
						... 
						
						
						
						interface implement type check 
						
						
					 
					
						2018-08-06 23:08:01 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						647535cd9b 
					 
					
						
						
							
							Support map as query string or post form parameters ( #1383 )  
						
						 
						
						... 
						
						
						
						* support query map
* add GetQueryMap and unittest
* support post-form map
* add readme for query map
* attempt to fix bug for post-form map when go version is 1.6
* remove duplicate code
* remove comment 
						
						
					 
					
						2018-08-06 12:07:11 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						631cfbd1ef 
					 
					
						
						
							
							Simplify context error ( #1431 )  
						
						 
						
						... 
						
						
						
						Hello!
Looking through context package and found a little bit complicated switch block. And tried to make it easier.
Thanks! 
						
						
					 
					
						2018-08-05 13:29:26 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						220e8d3453 
					 
					
						
						
							
							return json if jsonp has not callback ( #1438 )  
						
						 
						
						... 
						
						
						
						return json if jsonp has not callback 
						
						
					 
					
						2018-07-21 00:52:55 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						85221af84c 
					 
					
						
						
							
							add json ASCII string render ( #1358 )  
						
						 
						
						... 
						
						
						
						add a json render that rendering json as ASCII string 
						
						
					 
					
						2018-07-03 17:17:08 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d17a12591f 
					 
					
						
						
							
							update assert param(expect, actual) position ( #1421 )  
						
						 
						
						... 
						
						
						
						- update assert param(expect, actual) position 
						
						
					 
					
						2018-07-03 15:39:18 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1c4cbfae59 
					 
					
						
						
							
							chore: remove duplicate code ( #1418 )  
						
						 
						
						
						
						
					 
					
						2018-07-02 11:06:56 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						cdd02fa9d6 
					 
					
						
						
							
							update error(err) to err ( #1416 )  
						
						 
						
						... 
						
						
						
						the pull request update `return error(err)` to `return err`, and remove `kindOfData`. 
						
						
					 
					
						2018-07-01 21:10:48 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						eb9f313144 
					 
					
						
						
							
							add comment for context ( #1413 )  
						
						 
						
						... 
						
						
						
						ref #1075  
annotation from go context source. 
						
						
					 
					
						2018-06-28 17:08:09 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c00f21ff23 
					 
					
						
						
							
							add go version prerequisite and debug warning ( #1394 )  
						
						 
						
						... 
						
						
						
						* add go version prerequisite and debug warning
* merge duplicate content
* remove duplicate content 
						
						
					 
					
						2018-06-26 18:56:43 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6c6d97ba2e 
					 
					
						
						
							
							remove hardcode instead of http status value ( #1411 )  
						
						 
						
						
						
						
					 
					
						2018-06-26 17:21:32 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1f59bad84b 
					 
					
						
						
							
							add an edge case from httprouter ( #1407 )  
						
						 
						
						
						
						
					 
					
						2018-06-23 11:06:27 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						760d0574db 
					 
					
						
						
							
							vendor: remove vendor package from example folder ( #1402 )  
						
						 
						
						... 
						
						
						
						updated `vendor.json` is ok.
but set `ignore test` in `vendor.json`, `x/net/context` package only use in `context_test.go`, I don't know why vendor still need it.
please @appleboy review the pull request, thanks a lot. 
						
						
					 
					
						2018-06-23 00:45:43 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8035359102 
					 
					
						
						
							
							use strings.Split instead of strings.IndexByte ( #1406 )  
						
						 
						
						
						
						
					 
					
						2018-06-23 00:08:58 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						605aa1c30f 
					 
					
						
						
							
							example: fix typo for grpc ( #1405 )  
						
						 
						
						... 
						
						
						
						sorry...fixed #1403  
						
						
					 
					
						2018-06-22 23:44:45 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						737d2fb7ab 
					 
					
						
						
							
							add grpc example ( #1401 )  
						
						 
						
						... 
						
						
						
						use grpc helloworld example. 
						
						
					 
					
						2018-06-22 09:51:06 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bf85b32c1d 
					 
					
						
						
							
							Add Pusher() function for support http2 server push ( #1273 )  
						
						 
						
						... 
						
						
						
						gin already support http2, while previously not support server push.
Add Pusher() function to extend the ResponseWriter interface.
```golang
// get http.Pusher
 if pusher := c.Writer.Pusher(); pusher != nil {
     // use pusher.Push() to do server push
}
```
<img width="881" alt="screen shot 2018-03-07 at 11 20 49 pm" src="https://user-images.githubusercontent.com/16014993/37100619-680c00c6-225e-11e8-9352-76ec3bd62894.png "> 
						
						
					 
					
						2018-06-21 09:53:52 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						87d536c001 
					 
					
						
						
							
							utils:  use strings.Split instead of strings.IndexByte ( #1400 )  
						
						 
						
						... 
						
						
						
						And I test them benchmark:
code:
```go
# stringsbench.go
package stringsbench
import "strings"
func index(part string) string {
	if index := strings.IndexByte(part, ';'); index >= 0 {
		if part := strings.TrimSpace(strings.Split(part, ";")[0]); part != "" {
			return part[0:index]
		}
	}
	return ""
}
func split(part string) string {
	return strings.Split(part, ";")[0]
}
```
```go
# stringsbench_test.go
package stringsbench
import (
	"testing"
)
func BenchmarkIndex(b *testing.B) {
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			index("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
		}
	})
}
func BenchmarkSplit(b *testing.B) {
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			split("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
		}
	})
}
```
And the result:
```shell
➜  strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8   	30000000	        46.1 ns/op
BenchmarkSplit-8   	50000000	        35.9 ns/op
PASS
ok  	_/Users/tianou/strings	3.271s
➜  strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8   	30000000	        44.2 ns/op
BenchmarkSplit-8   	50000000	        34.7 ns/op
PASS
ok  	_/Users/tianou/strings	3.156s
➜  strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8   	30000000	        45.6 ns/op
BenchmarkSplit-8   	50000000	        35.3 ns/op
PASS
ok  	_/Users/tianou/strings	3.230s
``` 
						
						
					 
					
						2018-06-21 09:31:43 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						caf3e350a5 
					 
					
						
						
							
							doc: update readme for adding binding about skip validate ( #1359 )  
						
						 
						
						... 
						
						
						
						* update readme for adding binding about skip validate
* update readme for adding binding about skip validate 
						
						
					 
					
						2018-05-31 14:13:40 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c2f083fc95 
					 
					
						
						
							
							minor typo in routergroup.go ( #1360 )  
						
						 
						
						
						
						
					 
					
						2018-05-31 11:41:45 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						07cbe116a0 
					 
					
						
						
							
							Add and fix the explanation of HandleContext ( #1371 )  
						
						 
						
						... 
						
						
						
						Reference this issue #1323  
1. There isn't any eg about `HandleContext`  
2. The `c.Request.Path`  of `HandleContext` Comment  is not right   
Based on the above two points, I pull this request.  
If you think it's unnecessary, I will close this.  
Thx. 
						
						
					 
					
						2018-05-30 09:19:04 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bf7803815b 
					 
					
						
						
							
							Serve easily dynamic files with DataFromReader context method ( #1304 )  
						
						 
						
						... 
						
						
						
						* Add DataFromReader context method
* Replace fmt by strconv.FormatInt
* Add pull request link to README 
						
						
					 
					
						2018-05-12 11:00:42 +08:00