Aliaksandr Valialkin
6078ab00a9
FAQ prettifying
2015-11-28 16:54:16 +02:00
Aliaksandr Valialkin
441e559653
Removed superflous 'A: ' from FAQ
2015-11-28 15:15:37 +02:00
Aliaksandr Valialkin
638a9037be
FAQ section prettifying
2015-11-28 15:14:29 +02:00
Aliaksandr Valialkin
f73217cecf
spelling fix
2015-11-28 15:08:49 +02:00
Aliaksandr Valialkin
8563a2e762
Follow redirects in client Get* and Post* methods. Added Redirect method to RequestCtx.
2015-11-28 14:47:19 +02:00
Aliaksandr Valialkin
9f27e4c2b0
Added Update and CopyTo methods to URI
2015-11-28 14:45:13 +02:00
Aliaksandr Valialkin
efb4e2cd30
Fixed a typo
2015-11-28 14:17:11 +02:00
Aliaksandr Valialkin
7ac1da178f
Updated the answer about net/http advantages
2015-11-28 10:48:04 +02:00
Aliaksandr Valialkin
87d525b89a
Removed unused Logger from Client and HostClient
2015-11-28 10:42:01 +02:00
Aliaksandr Valialkin
d7ecf59c5d
Added Request.RemoveMultipartFormFiles for removing temporary files created during reading multipart/form-data request
2015-11-28 10:32:55 +02:00
Aliaksandr Valialkin
cc79b27b51
Imporoved multipart/form-data support.
...
* The server automatically deletes temporary uploaded files after returning
from RequestHandler.
* Multipart data is automatically streamed into temporary files on request
reading. This limits memory usage for big file uploads.
2015-11-28 10:18:03 +02:00
Aliaksandr Valialkin
a0cc899f64
Removed TCP_DEFER_ACCEPT from reuseport listening socket, since it has no measurable performance wins, but has a drawback that the established connection lifetime cannot be controlled by user program until the client sends initial request
2015-11-28 09:26:18 +02:00
Aliaksandr Valialkin
3eba841bb6
Use deferred accept in reuseport.Listener. This should reduce the number of context switches for busy servers accepting a lot of new connections per second. Will test it, since google says TCP_DEFER_ACCEPT option is useless :)
2015-11-27 17:59:38 +02:00
Aliaksandr Valialkin
02a86866ef
Increased maximum in-memory file size from 1MB to 16MB
2015-11-27 16:24:52 +02:00
Aliaksandr Valialkin
01031f43e2
Added support form multipart/form-data POST requests
2015-11-27 16:23:02 +02:00
Aliaksandr Valialkin
fa4d6b1581
Added FAQ section to README
2015-11-27 15:07:29 +02:00
Aliaksandr Valialkin
df6fda8c33
Added ability to limit request body size on the server and response body size on the client
2015-11-27 13:22:15 +02:00
Aliaksandr Valialkin
c0c5793fda
Updated TODO
2015-11-27 12:24:44 +02:00
Aliaksandr Valialkin
4aac41a918
Use the most optimized AppendBytesStr() implementation - append(dst, src..) :)
2015-11-26 20:10:51 +02:00
Aliaksandr Valialkin
c695c83986
Added RequestCtx.IsTLS, which may be used for determining whether the connection is encrypted
2015-11-26 18:55:26 +02:00
Aliaksandr Valialkin
b31fd30964
Added benchmark for comparing unequal strings with EqualBytesStr
2015-11-26 17:57:44 +02:00
Aliaksandr Valialkin
a3fd75d237
Eliminated memory allocations from client's DoTimeout and GetTimeout
2015-11-26 17:04:27 +02:00
Aliaksandr Valialkin
bc85e2b572
workerpool: immediately switch to connection processing if GOMAXPROCS=1. This improves single-threaded server performance by 1-2%
2015-11-26 12:38:18 +02:00
Aliaksandr Valialkin
8b00288e0a
Skip br.Buffered() verification, since it is guaranteed it is higher than 0 if br != nil
2015-11-26 12:22:24 +02:00
Aliaksandr Valialkin
ffca8866f9
gofmt
2015-11-26 12:21:34 +02:00
Aliaksandr Valialkin
1c4474c96f
Made fakeListener.Accept() safe for concurrent use
2015-11-25 17:33:57 +02:00
Aliaksandr Valialkin
79313ec7a9
Fixed a bug in ipv4 addresses resolution if the resolved ip addresses contain non-zero number of ipv6 addresses
2015-11-25 15:23:42 +02:00
Aliaksandr Valialkin
6816e2b03c
Clients dial only ipv4 addresses by default due to bad ipv6 support in our networks. Use DialDualStack for dialing both ipv4 and ipv6 addresses
2015-11-25 15:14:31 +02:00
Aliaksandr Valialkin
0fa8e8efc7
Client: dial both tcp4 and tcp6 addresses
2015-11-25 14:30:51 +02:00
Aliaksandr Valialkin
aa3b9144de
Fixed user-agent string in TestRequestString
2015-11-25 14:30:09 +02:00
Aliaksandr Valialkin
0c6b0a01a1
Shorten default server and client names
2015-11-25 13:46:19 +02:00
Aliaksandr Valialkin
0b2690febe
Added GetTimeout method to client
2015-11-25 13:45:34 +02:00
Aliaksandr Valialkin
9decd4d0ac
Properly handle negative timeouts in client's DoTimeout
2015-11-24 17:33:25 +02:00
Aliaksandr Valialkin
c6fcca3ae6
Added ReadTimeout and WriteTimeout settings to client
2015-11-24 17:14:34 +02:00
Aliaksandr Valialkin
9e35210a5a
Fixed possible data race on RequestCtx.TimeoutError if connection's buffered reader is attached to ctx.fbr
2015-11-24 16:56:29 +02:00
Aliaksandr Valialkin
52c04f13b2
Added support for 'Connection: Upgrade', so RequestHandler may detect such connections and hijack them
2015-11-24 15:48:10 +02:00
Aliaksandr Valialkin
6a90e62dd3
Fixed data race when hijacked conn is backed by firstByteReader, which is attached to RequestCtx
2015-11-24 15:42:52 +02:00
Aliaksandr Valialkin
71ebcd76bf
Updated production performance numbers in readme
2015-11-24 15:04:37 +02:00
Aliaksandr Valialkin
45e1d5a313
fixed a typo
2015-11-24 13:59:51 +02:00
Aliaksandr Valialkin
45ed911251
Improved RequestCtx.Hijack() - now HijackHandler works with the real net.Conn instead of fake io.ReadWriter. Also reduced memory usage by releasing empty read buffers on hijacked connections
2015-11-24 13:55:00 +02:00
Aliaksandr Valialkin
cd4ace5409
Close connection and release worker channel on panic in WorkerFunc
2015-11-24 13:40:39 +02:00
Aliaksandr Valialkin
2d41d2b734
Optimized AppendBytesStr - now it is 2x faster
2015-11-24 13:22:34 +02:00
Aliaksandr Valialkin
29de7735ce
Added benchmark for AppendBytesStr
2015-11-24 13:21:13 +02:00
Aliaksandr Valialkin
341bd090d0
Updated best practicies section in README.md
2015-11-24 12:57:57 +02:00
Aliaksandr Valialkin
961eef082b
Optimized EqualBytesStr
2015-11-24 12:57:01 +02:00
Aliaksandr Valialkin
146145240d
Added RequestCtx.Hijack() for connections' hijacking
2015-11-23 19:41:43 +02:00
Aliaksandr Valialkin
6773e97ef4
Added a tip for writing tests and benchmarks for hot paths
2015-11-23 17:02:52 +02:00
Aliaksandr Valialkin
5e36ee0947
Added benchmarks for lowercaseBytes
2015-11-23 16:58:29 +02:00
Aliaksandr Valialkin
e8afd90adc
Added missing package name to reuseport
2015-11-23 14:22:30 +02:00
Aliaksandr Valialkin
1fb0888104
Moved ErrKeepaliveTimeout to ServeConn errors section
2015-11-23 14:21:31 +02:00