Commit Graph

773 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 12ba989984 Issue #69: Added RequestHeader.Add and ResponseHeader.Add for adding multiple headers with the same key 2016-03-29 17:11:43 +03:00
Aliaksandr Valialkin e9207dac9e Added Args.Add() 2016-03-29 16:49:42 +03:00
Aliaksandr Valialkin 6658e31fd0 Eliminated bufKV member from Args struct. This shaves off 16 bytes from RequestCtx struct 2016-03-29 16:37:29 +03:00
Aliaksandr Valialkin eca172369c Pass string key to hasArg instead of byte slice key 2016-03-29 16:31:38 +03:00
Aliaksandr Valialkin 0c67179812 Added delAllArgsBytes helper 2016-03-29 16:30:07 +03:00
Aliaksandr Valialkin 0d43464f64 Renamed unsafeBytes2Str to b2s 2016-03-29 16:26:21 +03:00
Aliaksandr Valialkin 8b26017325 Renamed setArg to setArgBytes 2016-03-29 16:19:22 +03:00
Aliaksandr Valialkin 1498d8174e Issue #73: added 'HttpOnly' and 'secure' flags support to Cookie 2016-03-29 16:12:59 +03:00
Aliaksandr Valialkin 169b5eac74 server: sleep for a while after reaching the concurrency limit, so other concurrently running servers could accept and process incoming connections 2016-03-29 12:00:21 +03:00
Aliaksandr Valialkin dbea792cf7 Scalability improvement: use distinct workerChan pool per each workerPool 2016-03-29 11:45:09 +03:00
Aliaksandr Valialkin 023e3807b8 workerPool optimization: determine the current time outside lock 2016-03-29 11:05:14 +03:00
Aliaksandr Valialkin d444ab9169 Server: write error response when concurrency limit or per-ip conn limit is exceeded before closing the connection. This should improve server diagnostics 2016-03-28 18:42:40 +03:00
Aliaksandr Valialkin bfa17b7ae9 do not copy Request and Cookie objects in tests 2016-03-28 17:17:05 +03:00
Aliaksandr Valialkin 0d8bc2c01a updated benchmark results 2016-03-24 14:13:32 +02:00
Aliaksandr Valialkin c469d18819 Issue #72: properly handle 'Connection: keep-alive, Upgrade' header 2016-03-22 19:47:59 +02:00
Aliaksandr Valialkin 9ad70994bb code cleanup: removed duplicate code in fs.go 2016-03-21 18:42:34 +02:00
Aliaksandr Valialkin 2b172da539 re-use appendArg inside setArg v20160316 2016-03-15 11:27:03 +02:00
Aliaksandr Valialkin e8d5a6429c Merge pull request #65 from vishr/master
Fixed Echo link
2016-03-15 11:18:14 +02:00
Vishal Rana 25078ee024 Fixed Echo link
Signed-off-by: Vishal Rana <vr@labstack.com>
2016-03-11 09:05:59 -08:00
Aliaksandr Valialkin ca2c5535a3 do not write 'date' response header, since 'date' header is automatically generated 2016-03-11 11:05:32 +02:00
Aliaksandr Valialkin 3f6e5b64a9 optimized delAllArgs 2016-03-11 10:59:01 +02:00
Aliaksandr Valialkin e0eac18652 use 'switch string(key) {}' instead of 'switch { case bytes.Equal(key, ...) ... }'. This may improve switch statement's performance 2016-03-10 17:44:58 +02:00
Aliaksandr Valialkin 38356e216e Issue #64: properly delete header values via Del call 2016-03-10 17:22:59 +02:00
Aliaksandr Valialkin 76e0faee32 Added anti-copy guard to FS type 2016-03-06 19:12:00 +02:00
Aliaksandr Valialkin 124195fdd8 create new default tls.Config instead of re-using existing config, since it may not be copied due to sync.Once member 2016-03-06 19:11:34 +02:00
Aliaksandr Valialkin 57df0ba8a4 go code formatting fix in README 2016-03-06 00:32:17 +02:00
Aliaksandr Valialkin 9614400c58 Issue #9: mention v2 as yet another router with fasthttp support 2016-03-06 00:26:03 +02:00
Aliaksandr Valialkin 8280b7a162 Moved empty noCopy struct to the top of container structs. See @stemar94 's comment at https://github.com/golang/go/issues/12884 for details 2016-03-06 00:17:08 +02:00
Aliaksandr Valialkin 9f43aa1601 Do not expose noCopy.Lock 2016-03-04 21:20:52 +02:00
Aliaksandr Valialkin 9fa69c74af Embed noCopy struct into structs, which mustn't be copied
This should help `go vet` detecting invalid structs' copyings.
See https://github.com/golang/go/issues/8005#issuecomment-190753527 for details.
2016-03-04 16:57:24 +02:00
Aliaksandr Valialkin 15e46458ea Added Coverage and 'Go Report' badges to the top of README.md 2016-03-03 01:58:57 +02:00
Aliaksandr Valialkin 0a85495ae0 Validate multipart form value in server test 2016-03-02 20:15:02 +02:00
Aliaksandr Valialkin e4c0cbe843 code prettifying 2016-03-02 16:10:38 +02:00
Aliaksandr Valialkin 15ffe2f795 Issue #63: added helper functions for starting https server with certificates embedded into the app 2016-03-02 15:23:21 +02:00
Aliaksandr Valialkin 877a47395f Issue #61: use proper content-length in multipart/form-data tests 2016-03-01 18:12:00 +02:00
Aliaksandr Valialkin 8581513fa2 Issue #61: server: properly read multipart/form-data 2016-03-01 18:07:52 +02:00
Aliaksandr Valialkin 31a9d3461e Issue #61: test request with multipart/form-data body containing file value 2016-03-01 17:13:49 +02:00
Aliaksandr Valialkin d1768755c9 gofmt 2016-03-01 17:12:39 +02:00
Aliaksandr Valialkin 3f1619c5f9 Updated LICENSE 2016-03-01 15:41:31 +02:00
Aliaksandr Valialkin 2a92d3c96e Reduced concurrency and increased wait time in TestPipeConnsCloseWhileReadWriteConcurrent, so it may pass on slow CPUs and/or with -race flag 2016-03-01 13:57:24 +02:00
Aliaksandr Valialkin 1e8901b798 fasthttputil: added concurrent test for closing PipeConns while reading/writing from it 2016-03-01 13:53:57 +02:00
Aliaksandr Valialkin 69793f7224 Fixed data races in PipeConns 2016-03-01 02:03:26 +02:00
Aliaksandr Valialkin 3546c31c2b Issue #60: skip body copying in DoTimeout. This should improve DoTimeout performance when dealing with big request and/or response bodies 2016-03-01 01:13:50 +02:00
Aliaksandr Valialkin a19a196595 Use DoTimeout instead of GetTimeout in 'big response' benchmark 2016-03-01 01:11:20 +02:00
Aliaksandr Valialkin a956ac660d Set timeout when benchmarking big responses 2016-03-01 00:42:24 +02:00
Aliaksandr Valialkin 70316d0535 Issue #60: give up to find an optimal strategy for body buffers' re-use 2016-02-29 18:35:15 +02:00
Aliaksandr Valialkin 8985a565b2 Issue #60: throughput tuning: re-use body buffers if their size is smaller than 8Kb 2016-02-29 18:11:17 +02:00
Aliaksandr Valialkin fcfda9f312 Issue #60: increased client and server throughput when working with big bodies 2016-02-29 17:31:47 +02:00
Aliaksandr Valialkin 203ba5897c Issue #60: added benchmarks for big response bodies 2016-02-29 17:28:41 +02:00
Aliaksandr Valialkin 3e83cf1c27 Properly handle missing file error in ServeFile 2016-02-29 14:45:42 +02:00