下面聊的是 gout,gout 是 go 里面第一个流式 http client。下面是 feaute 列表,数据编解码这块基本做到极致,引入流式概念,既可以 core 很小巧,组合起来也很强大(benchmark 是第一个 filter 函数)。为啥关注度不高?还有哪些需要完善的地方?
https://github.com/guonaihong/gout
1
wangsongyan 2019-12-10 09:15:43 +08:00 1
多在 v2 发帖子
|
2
zunceng 2019-12-10 09:18:54 +08:00 1
集成 grpc ?
|
3
popbones 2019-12-10 09:34:24 +08:00 via iPhone 1
文档改成英文的
|
4
reus 2019-12-10 11:04:59 +08:00 via Android 1
你解决的根本不是痛点,没有
|
5
shunia 2019-12-10 11:04:59 +08:00 1
优秀的英文文档呗,想热得靠 pr,国人 pr 的热情太低。
|
6
guonaihong OP @popbones 这个版本加上。
|
7
guonaihong OP @reus 哈哈,你的回答最有意思,上次看你怼过几个项目,有的最后 700star,有的 1w star。
|
8
lishunan246 2019-12-10 12:40:09 +08:00
给一个不用 net/http 和 valyala/fasthttp 的理由?
|
9
chennqqi 2019-12-10 13:04:25 +08:00
net/http 足够好了,另外不知道你说的流式是啥意思
|
10
zhaogaz 2019-12-10 13:14:08 +08:00
哎,有很多 star 高的项目都是垃圾。。。
|
11
guonaihong OP @lishunan246 用标准库可以慢慢的做一件事,用库可以更爽更快的做一件事。这个看个人喜好了。
|
12
guonaihong OP @zhaogaz 这个没法回答你。做开源项目的人都不喜欢评论别人的开源项目是垃圾,知道几千几万行的撸不容易。如果遇到问题一般直接提 pr 帮原作者完善下。
|
13
gesse 2019-12-10 13:37:45 +08:00 1
star + watch 了
|
14
stanlry 2019-12-10 13:38:18 +08:00 via Android
建议看看 go-resty,很早就有了
|
15
PiersSoCool 2019-12-10 13:39:08 +08:00
流式调用的好处在哪里?更可读?更简洁?我的确没觉得更爽,net/http 代码可读性肯定比你这好一些,因为他没有封装流式的方法,这对于业务来说是无关的代码。
所以那解决了 net/http 什么问题?我不知道。所以对标的是什么库,优缺点呢? 生产环境可使用吗?崩溃了谁能去及时解决?没人想给自己造成麻烦。 我怎么从 net/http 迁移?全部重写?那是不可能的。 |
16
python 2019-12-10 13:54:18 +08:00 via Android 1
支持批量传 url slice 去请求拿响应结果不?
错误处理呢? 重试机制有吗? 相比 fasthttp 性能如何? 畸形页面的编码问题? gbk ? |
17
guonaihong OP @PiersSoCool 我下班后回答下,都是挺好的问题。
|
18
guonaihong OP @python 我下班后回答,不错的建议。
|
19
exceptionplayer1 2019-12-10 14:24:14 +08:00
不错,学习一下
|
20
woostundy 2019-12-10 14:24:32 +08:00
支持。
我觉得需要个最佳实践项目,来告诉大家用这个库的场景。 |
21
matepi 2019-12-10 15:00:34 +08:00
主要还是流式调试起来反人类……自己小玩玩可以,大逻辑项目不敢上
|
22
lishunan246 2019-12-10 15:08:27 +08:00 via Android
@guonaihong 在什么场景下你的 gout 比标准库和 fasthttp 更爽更快?
|
23
guonaihong OP @stanlry gout 实现的代码现在已经比 go-resty 多,很多功能 gout 有,go-resty 没有,全面超越还是有可能的。go-resty 的立意还是很不错的,不是 python 的 request 的搬砖项目。可惜作者没有好好设计。
|
24
guonaihong OP @lishunan246 抱歉,我上面说的快是开发效率。这点应该没有争议。
标准库里面的 net/http 至今也没有项目可以撼动其地位。fasthttp 支持 http2 还没成功,作者已经去玩时序数据库了。。。 |
25
guonaihong OP @PiersSoCool 这里面的问题其实很好回答,我讲下自己的事情,以前我们 http server 都是基于标准库的,后面尝试 gin 确实可以提高开发效率就慢慢铺开,在用的过程就提提 pr 优化下。用标准库开发绝对问题,但是开发效率不是最优解。这需要你那么自己权衡。这对于选择任何开源项目都适用。
|
26
guonaihong OP @PiersSoCool 忽略上一条,看这条。这里面的问题其实很好回答,我讲下自己的事情,以前我们 http server 都是基于标准库的,后面尝试 gin 确实可以提高开发效率就慢慢铺开,在用的过程就提提 pr 优化下。用标准库开发绝对很难遇到问题,但是开发效率不是最优解。这需要你那么自己权衡。这对于选择任何开源项目都适用。
|
27
guonaihong OP @python 字符编码不会做,这个点能不到极致,就给更喜欢这点的童鞋做。gout 只做作者能轻松 hold 得住的点,有问题可以快速解决,保守估计再撸 2-3w 行代码还是可以驾驭得住的。
批量 url 和重试我一直不想加。重试在我遇到的项目里面没有 fast fail 策略来的好使。有兴趣的话,可以在 gout 的 issue 上面一起讨论下。 |
28
guonaihong OP |