
gout 是 http 请求库,如果找一个熟悉的事物来类比,那就是追求成为瑞士军刀这样一个超级作品,收藏过瑞士军刀的朋友都知道,它有很多小的部件,很难想像它小巧的身体下面集齐力那么多的工具。有了它能解决生活中很多棘手的问题。向如此有工匠精神的物件致敬。希望有一天 gout 也能让大家由哀地发出这样的想法。当然作者要做的就是时间为朋友,不停地在现有基础上优化,新的版本比上个版本有所进步。

https://github.com/guonaihong/gout
输出 API 各个阶段耗时 Dns---> tcp connect ---> send request ---> wait result ---> read result,可以很方便论断性能
gout.Trace()可输出 http 各个阶段的耗时,比如 dns lookup 时间,tcp 连接时间等等。可以很方便的做些性能调优。 package main import ( "fmt" "github.com/guonaihong/gout" ) func openDebugTrace() { err := gout.POST(":8080/colorjson"). Debug(gout.Trace()). SetJSON(gout.H{"str": "foo", "num": 100, "bool": false, "null": nil, "array": gout.A{"foo", "bar", "baz"}, "obj": gout.H{"a": 1, "b": 2}, }).Do() if err != nil { fmt.Printf("err = %v\n", err) } } =================== Trace Info(S): =================== DnsDuration : 0s ConnDuration : 868.623s TLSDuration : 0s RequestDuration : 376.712s WaitResponeDuration : 717.008s ResponseDuration : 76.158s TotalDuration : 2.13921ms =================== Trace Info(E): =================== 欢迎试用,如有建议,欢迎提issue
1 lwldcr 2020 年 2 月 26 日 star 了 等有时间学习一下 |
2 lyhiving 2020 年 2 月 26 日 并发有有没有?堵塞重试有没有? 没有的话我迟点再问 |
3 guonaihong OP @lyhiving 有基于 backoff 的重试功能。 |
4 krixaar 2020 年 2 月 26 日 项目名字有点痛…… |
5 guonaihong OP @krixaar 哈哈,为了避免影响已经用的童鞋,名字就这样了。 |
6 imnaive 2020 年 2 月 26 日 收藏了,可能用得到 |
7 Allianzcortex 2020 年 2 月 26 日 via iPhone 看到 gout.H 笑了下,受 gin 影响太深了吧 |
8 guonaihong OP @Allianzcortex 早前时候给 gin 提过几个 pr,影响了我那段时间的 API 设计。不过 gout.H 可以少敲字符,挺好 就保留下来了。 |
9 wsseo 2020 年 2 月 26 日 楼主在开源中国搬砖吗? |
10 guonaihong OP |