<p>I stumbled upon <a href="http://rpcx.site/">http://rpcx.site/</a>, which bills itself as a faster replacement for gRPC (in Go). It lead me to learn about KCP, a protocol meant to deliver reliable streams over lossy networks: <a href="https://github.com/skywind3000/kcp/blob/master/README.en.md">https://github.com/skywind3000/kcp/blob/master/README.en.md</a></p>
<p>And KCP-go is used in Lantern (<a href="https://getlantern.org/">https://getlantern.org/</a>), which is a peer to peer VPN system to evade censorship. It ships on desktop and mobile platforms, thanks to Go and Go-mobile.</p>
<p>Wow.</p>
<p>Go guys, go! Make the world more gophery!</p>
<hr/>**评论:**<br/><br/>SolFlorus: <pre><p>As someone that has previously used Beego:</p>
<p>Chinese gophers have been putting out some super high quality libraries. That said, I'm less likely to use them because their issues, pull requests, etc... tend to be in Chinese (understandably). The language barrier just makes hunting down issues more difficult.</p></pre>coder543: <pre><p>What does KCP stand for?</p></pre>1lann: <pre><p>The first sentence of the Chinese README says "KCP shi yige <strong>kuaisu</strong> <strong>kekao</strong> xieyi" which translates to "KCP is a fast and reliable protocol".</p>
<p>Fast and reliable in Chinese is "kuaisu kekao". That's probably where the K came from. Fast/reliable control protocol.</p></pre>joncalhoun: <pre><p>Your question intrigued me, but after like 20m of digging the only thing I can find out is that it is a "A Fast and Reliable ARQ Protocol".</p>
<p>Perhaps somehow "ARQ Control Protocol" became KCP somehow? Or something was lost in translation? </p>
<p>¯\_(ツ)_/¯</p></pre>SilentWeaponQuietWar: <pre><p>this question is going to keep me up tonight. I just read over the docs in at least 10 diff KCP related repos expecting to find some kind of answer... nope.</p></pre>kidovate: <pre><p>I have looked at kcp and while it's interesting I think Quic ultimately has more potential. Check out quic-go</p></pre>siwu: <pre><p>I'm thinking of using both:</p>
<ul>
<li>QUIC/H2 is still being discussed by IETF and there are making some major changes to the protocol</li>
<li>Most notably in HTTP/2 dropping the Stream 3 for headers and going full stream (which GQUIC doesn't do)</li>
<li>KCP has FEC, which is a really nice addition when working on mobile networks</li>
<li>QUIC FEC is still in draft AFAIK</li>
</ul>
<p>That said, I just did a quick test of gRPC over KCP on <code>localhost</code> and the performance for KCP-Go is very bad compared to raw TCP. I used the default Dialer and Listerner.</p></pre>kidovate: <pre><p>Quic has fec afaik, functionally in quic-go</p></pre>siwu: <pre><p>I've seen the draft, but it's unclear if it's been implemented at all</p></pre>alexfiori: <pre><p>Ever heard of reactivesocket? Or rsocket, as it's called these days. Been playing with it for a while, will eventually open source it.</p></pre>TheMerovius: <pre><p>FTR, I disagree that rpcx competes with gRPC (or, more specifically, can be considered a replacement). It's missing several critical features for that, like an IDL, or language-independence, from what I can tell.</p></pre>jammerlt: <pre><p>It still has a ton of issues if you want to do any sensible NAT punch through. I've been trying to wedge it into syncthing for a while, and still have to utilise various hacks to make it work. Furthermore, it has too many knobs to tweak to make it performant in all scenarios.</p></pre>: <pre><p>[deleted]</p></pre>ChristophBerger: <pre><p>I guess this comment is meant for <a href="https://www.reddit.com/r/golang/comments/78oprj/moka_a_golang_mocking_framework_built_by_me/" rel="nofollow">https://www.reddit.com/r/golang/comments/78oprj/moka_a_golang_mocking_framework_built_by_me/</a></p></pre>poetic_waffle: <pre><p>Yeah It is sorry I am stupid.</p></pre>ChristophBerger: <pre><p>No probs, can happen to anyone...</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传