:non-potable_water: Is a lightweight HTTP router that sticks to the std "net/http" implementation
Group
functionality introduced in Release 4.0.0
Group
function handled 3 different scenarios:.Group("/users")
- group with existing middleware.Group("/users", nil)
- group but retain no middleware.Group("/users", MoreMiddleware)
- group, retain existing and add MoreMiddlewareThis was confusing and even I was always referring to the function to remember what it all did so here is how it works now.
.Group("/users")
- group with existing middleware.GroupWithNone("/users")
- group but retain no middleware..GroupWithMore("/users", MoreMiddleware)
- group, retain existing and add MoreMiddlewareQueryParams
function from RequestVars
, storing a single copy if requested multiple times really wasn't much faster because of the context.Context
lookup time so removed.
benchmark old ns/op new ns/op delta
BenchmarkPure_Param 157 161 +2.55%
BenchmarkPure_Param5 208 205 -1.44%
BenchmarkPure_Param20 350 356 +1.71%
BenchmarkPure_ParamWrite 221 215 -2.71%
BenchmarkPure_GithubStatic 72.6 47.1 -35.12%
BenchmarkPure_GithubParam 230 227 -1.30%
BenchmarkPure_GithubAll 43054 42284 -1.79%
BenchmarkPure_GPlusStatic 54.0 31.7 -41.30%
BenchmarkPure_GPlusParam 182 178 -2.20%
BenchmarkPure_GPlus2Params 207 193 -6.76%
BenchmarkPure_GPlusAll 2297 2159 -6.01%
BenchmarkPure_ParseStatic 56.2 30.9 -45.02%
BenchmarkPure_ParseParam 166 159 -4.22%
BenchmarkPure_Parse2Params 180 174 -3.33%
BenchmarkPure_ParseAll 3671 3290 -10.38%
BenchmarkPure_StaticAll 14646 9964 -31.97%
benchmark old allocs new allocs delta
BenchmarkPure_Param 1 1 +0.00%
BenchmarkPure_Param5 1 1 +0.00%
BenchmarkPure_Param20 1 1 +0.00%
BenchmarkPure_ParamWrite 1 1 +0.00%
BenchmarkPure_GithubStatic 0 0 +0.00%
BenchmarkPure_GithubParam 1 1 +0.00%
BenchmarkPure_GithubAll 167 167 +0.00%
BenchmarkPure_GPlusStatic 0 0 +0.00%
BenchmarkPure_GPlusParam 1 1 +0.00%
BenchmarkPure_GPlus2Params 1 1 +0.00%
BenchmarkPure_GPlusAll 11 11 +0.00%
BenchmarkPure_ParseStatic 0 0 +0.00%
BenchmarkPure_ParseParam 1 1 +0.00%
BenchmarkPure_Parse2Params 1 1 +0.00%
BenchmarkPure_ParseAll 16 16 +0.00%
BenchmarkPure_StaticAll 0 0 +0.00%
benchmark old bytes new bytes delta
BenchmarkPure_Param 240 240 +0.00%
BenchmarkPure_Param5 240 240 +0.00%
BenchmarkPure_Param20 240 240 +0.00%
BenchmarkPure_ParamWrite 240 240 +0.00%
BenchmarkPure_GithubStatic 0 0 +0.00%
BenchmarkPure_GithubParam 240 240 +0.00%
BenchmarkPure_GithubAll 40082 40082 +0.00%
BenchmarkPure_GPlusStatic 0 0 +0.00%
BenchmarkPure_GPlusParam 240 240 +0.00%
BenchmarkPure_GPlus2Params 240 240 +0.00%
BenchmarkPure_GPlusAll 2640 2640 +0.00%
BenchmarkPure_ParseStatic 0 0 +0.00%
BenchmarkPure_ParseParam 240 240 +0.00%
BenchmarkPure_Parse2Params 240 240 +0.00%
BenchmarkPure_ParseAll 3840 3840 +0.00%
BenchmarkPure_StaticAll 0 0 +0.00%
nothing really, just updated the logging middleware example to use new ansi library to reduce code duplication.