I just followed an example how to make libcurl and libuv working together. I removed usage of global variables and tested the performance by downloading (not writing to disk) 4.4GB file. It works great. It is comparable to my experience with completion ports on Windows.
libcurl: 7.66.0
libuv: 1.33.1
url: http://saimei.ftp.acc.umu.se/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.2.0-amd64-lxqt.iso
code: 200
real	2m37,210s
user	0m2,297s
sys	0m6,527sThe source code of my playground: https://github.com/amacal/peak/tree/5810adf59a026fc5f630e57791fc463f0452701c
