HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Gnet is the fastest networking framework in Go(gnet.host)

112 points·by mfru·2 jaar geleden·16 comments
gnet.host
Gnet is the fastest networking framework in Go

https://gnet.host/

17 comments

tutfbhuf·2 jaar geleden
People in the Go community often respond with "use net/http for building web apps", the standard library is good enough and has better support in the long run. This is good advice in most cases. However, if you are using Go for API building and explicitly want to squeeze out every little bit of performance, then there are much faster libraries available than the standard net/http. Gnet is one such example.
[deleted]·2 jaar geleden
Akronymus·2 jaar geleden
And what are the downsides? Hard to maintain code? Having to deeply integrate the code to get the advertised performance?

Also: "Multiple Porotocols"

Oh, there it is on the github: "Note that the HTTP implementation of gnet on TechEmpower is half-baked and fine-tuned for benchmark purposes only and far from production-ready."
dbt00·2 jaar geleden
“All performance benefits go out the window the moment you have to do any computation in a goroutine” probably.

Go is the one language that should never have to suffer the pain of sync/async splits. Why would you want to opt into that?
justinzollars·2 jaar geleden
"the standard library is good enough and has better support in the long run"
weitendorf·2 jaar geleden
https://gnet.host/docs/about/overview/ - This is a very similar threading model to envoy [0] and lmax disruptor [1]. Unfortunately IIUC writing this in Go still prevents the spin-locked acceptor thread from achieving the kind of performance you could get in a non-GC language, unless you chose to disable GC, so I'd guess Envoy is still faster.

https://gnet.host/docs/quickstart/ it's nice that you can use this simply though. Envoy is kind of tricky to setup with custom filters, so most of the time it's just a standalone binary.

[0] https://blog.envoyproxy.io/envoy-threading-model-a8d44b92231...

[1] https://lmax-exchange.github.io/disruptor/#_what_is_the_disr...
tazu·2 jaar geleden
Is there an HTTP server library built on top of this? I'm getting tired of Fiber/FastHTTP.
tutfbhuf·2 jaar geleden
What are your current issues with Fiber/FastHTTP?
tazu·2 jaar geleden
Why'd you downvote me for asking a question? Or are you personally affiliated with the libraries?

My issue with Fiber is the documention.
tutfbhuf·2 jaar geleden
I haven't downvoted you. Actually, now that you mention having been downvoted, I have given you an upvote to counter one of the downvotes. Your question is absolutely legitimate and I'm in no way affiliated with any of the Go libraries.
rmac·2 jaar geleden
the perf is for plaintext? why not encoded?

no quic / h3 ?

love the work and that it's open source but let's push the envelope!
latchkey·2 jaar geleden
I built a tcp service using gnet and it was fantastic. I was really impressed with how easy it was to integrate with.
linter·2 jaar geleden
Lacking documentation. Take a look at Django if you want to learn how to write your documentation.
logicchains·2 jaar geleden
Most of the documentation is in mandarin, since it was developed in China.
bsaul·2 jaar geleden
can you run grpc over it ?
xyzzy_plugh·2 jaar geleden
If you can do tcp then you can do grpc.
danesparza·2 jaar geleden
If you don't have docs and examples, then I guess it doesn't do grpc.