The Windows Process Journey — “curl.exe” (cURL executable)

Shlomi Boutnaru, Ph.D.
1 min readJul 26, 2023

--

“curl.exe” is a command line tool which allows transferring data with URLs. It supports various protocols like: FTP/S, HTTP/S, IMAP/S, LDAP/S, MQTT, POP3, SMB/S (https://curl.se/). “curl” is a popular command line tool for Linux (https://linux.die.net/man/1/curl). There is also a version of “curl” for Windows. it is statically linked with different libraries like: libssh2, brotli, zlib, zstd, nghttp3, nghttp2, cacert (https://curl.se/windows/).

Moreover, since build 17063 of Windows 10 (December 2017), Microsoft has announced that “curl” is going to be shipped by default as part of Windows (https://learn.microsoft.com/en-us/virtualization/community/team-blog/2017/20171219-tar-and-curl-come-to-windows). However, “curl.exe” that is shipped with Windows is handled and built by Microsoft. Microsoft’s version of “curl” uses the SChannel TLS backend (https://curl.se/windows/microsoft.html).

Lastly, there is also a “curl” command as part of Powershell, but it is just an alias to the “Invoke-WebRequest”cmdlet — as shown in the screenshot below. We can go over the source code of curl in GitHub (https://github.com/curl/curl). Using “curl.exe” we can send HTTP GET requests (as shown below), resuming downloads, specifying max transfer rate and more (https://www.keycdn.com/support/popular-curl-examples).

See you next time ;-) You can also follow me on twitter — @boutnaru (https://twitter.com/boutnaru).

--

--