pawelgaczynski / gain

Gain is a high-performance io_uring networking framework written entirely in Go.
Apache License 2.0
503 stars 22 forks source link

Using as a client? #18

Open baryluk opened 1 year ago

baryluk commented 1 year ago

Is there a way to use it as a TCP client? Lets say creating 1000 HTTP output connections sending requests and getting responses.

pawelgaczynski commented 1 year ago

Hi. Do you want to create some kind of benchmarking tool?

baryluk commented 1 year ago

No, just a client (open connection, do some handshakes) that can connect to many tcp connections, send requests, get respones, etc. Could be anything, benchmarking tools, web crawler, multi connection downloader, web browser (unlikely, just an example), parallel rsync-like functionality, etc. etc.

baryluk commented 1 year ago

Another example might QUIC client, or uTP client, or DNS stress testing tool. These are for UDP, but still a client initiated sending. With "connected" UDP socket I am pretty sure it can be done same was as with bind sockets, but for unconnected it is slightly different.