重新燃烧小宇宙,g out v0.0.9 版本发布

2020-02-26 09:28:59 +08:00
 guonaihong

gout 简介

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.623µs
     TLSDuration           : 0s
     RequestDuration       : 376.712µs
     WaitResponeDuration   : 717.008µs
     ResponseDuration      : 76.158µs
     TotalDuration         : 2.13921ms
=================== Trace Info(E): ===================

收集意见箱

欢迎试用,如有建议,欢迎提issue

2219 次点击
所在节点    程序员
10 条回复
lwldcr
2020-02-26 09:40:10 +08:00
star 了 等有时间学习一下
lyhiving
2020-02-26 09:40:10 +08:00
并发有有没有?堵塞重试有没有?
没有的话我迟点再问
guonaihong
2020-02-26 09:44:00 +08:00
@lyhiving 有基于 backoff 的重试功能。
krixaar
2020-02-26 09:44:30 +08:00
项目名字有点痛……
guonaihong
2020-02-26 09:52:10 +08:00
@krixaar 哈哈,为了避免影响已经用的童鞋,名字就这样了。
imnaive
2020-02-26 10:49:15 +08:00
收藏了,可能用得到
Allianzcortex
2020-02-26 11:23:08 +08:00
看到 gout.H 笑了下,受 gin 影响太深了吧
guonaihong
2020-02-26 11:50:19 +08:00
@Allianzcortex 早前时候给 gin 提过几个 pr,影响了我那段时间的 API 设计。不过 gout.H 可以少敲字符,挺好 就保留下来了。
wsseo
2020-02-26 12:04:53 +08:00
楼主在开源中国搬砖吗?
guonaihong
2020-02-26 18:51:25 +08:00
@wsseo 没懂“搬砖”,是指代码仓库吗?我在 github.comgitee.com 都有账号。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX