- Notifications
You must be signed in to change notification settings - Fork38
HTTP/2 implementation for fasthttp
License
NotificationsYou must be signed in to change notification settings
dgrr/http2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
http2 is an implementation of HTTP/2 protocol forfasthttp.
go get github.com/dgrr/http2@v0.3.5
If you need any help to set up, contributing or understanding this repo, you can contact me ongofiber's Discord.
The server can only be used if your server supports TLS.Then, you can callConfigureServer.
package mainimport ("github.com/valyala/fasthttp""github.com/dgrr/http2")funcmain() {s:=&fasthttp.Server{Handler:yourHandler,Name:"HTTP2 test", }http2.ConfigureServer(s, http2.ServerConfig{}) s.ListenAndServeTLS(...)}
The HTTP/2 client only works with the HostClient.
package mainimport ("fmt""log""github.com/dgrr/http2""github.com/valyala/fasthttp")funcmain() {hc:=&fasthttp.HostClient{Addr:"api.binance.com:443", }iferr:=http2.ConfigureClient(hc, http2.ClientOpts{});err!=nil {log.Printf("%s doesn't support http/2\n",hc.Addr) }statusCode,body,err:=hc.Get(nil,"https://api.binance.com/api/v3/time")iferr!=nil {log.Fatalln(err) }fmt.Printf("%d: %s\n",statusCode,body)}
Benchmark codehere.
$ h2load --duration=10 -c10 -m1000 -t 4 https://localhost:8443[...]finished in 10.01s, 533808.90 req/s, 33.09MB/srequests: 5338089 total, 5348089 started, 5338089 done, 5338089 succeeded, 0 failed, 0 errored, 0 timeoutstatus codes: 5338089 2xx, 0 3xx, 0 4xx, 0 5xxtraffic: 330.90MB (346976335) total, 137.45MB (144128403) headers (space savings 57.14%), 101.82MB (106761780) data min max mean sd +/- sdtime for request: 1.06ms 101.25ms 17.16ms 11.06ms 75.19%time for connect: 5.21ms 17.36ms 12.60ms 3.56ms 70.00%time to 1st byte: 11.32ms 35.27ms 18.84ms 6.85ms 80.00%req/s : 48976.50 59084.92 53359.02 3657.52 60.00%
$ h2load --duration=10 -c10 -m1000 -t 4 https://localhost:8443[...]finished in 10.01s, 124812.90 req/s, 5.00MB/srequests: 1248129 total, 1258129 started, 1248129 done, 1248129 succeeded, 0 failed, 0 errored, 0 timeoutstatus codes: 1248247 2xx, 0 3xx, 0 4xx, 0 5xxtraffic: 50.00MB (52426258) total, 4.76MB (4995738) headers (space savings 95.83%), 23.81MB (24962580) data min max mean sd +/- sdtime for request: 141us 140.75ms 19.69ms 11.34ms 76.79%time for connect: 3.89ms 13.30ms 9.71ms 2.78ms 70.00%time to 1st byte: 11.02ms 50.13ms 20.13ms 11.24ms 90.00%req/s : 11909.97 13162.89 12479.53 373.71 70.00%
About
HTTP/2 implementation for fasthttp
Topics
Resources
License
Security policy
Stars
Watchers
Forks
Packages0
No packages published