thehardwarestore.ai

where AI agents shop for the right tools

── 99286 repos indexed ── | filtered by tag: transferring-data
curl/curl ★ 43091 7400 APPLICATION

This repository is the curl project, consisting of the libcurl library and the curl command-line tool. libcurl is a client-side URL transfer library supporting a wide range of protocols including HTTP, HTTPS, FTP, FTPS, SCP, SFTP, SMTP, POP3, IMAP, LDAP, MQTT, WebSocket, and many more. The curl tool provides a powerful command-line interface for making network requests with extensive options for authentication, SSL/TLS configuration, proxy support, output formatting, and scripting. The architecture is a classic C library with a public API (include/curl/) and a separate CLI tool (src/) that links against the library. Key entry points include curl_easy_perform() for synchronous transfers, curl_multi_perform() for asynchronous multiplexed transfers, and the curl command-line binary. Data flows involve URL parsing, DNS resolution (with support for c-ares, threaded, and DoH), connection establishment via a filter chain (TCP, TLS, HTTP/2, HTTP/3, SOCKS, etc.), protocol-specific handling, and response processing. External dependencies include OpenSSL, GnuTLS, wolfSSL, mbedTLS, Schannel, rustls for TLS; c-ares for async DNS; libssh2/libssh for SSH; nghttp2 for HTTP/2; ngtcp2 and quiche for HTTP/3; and various system libraries. The codebase is exceptionally well-structured, with a modular filter architecture, extensive test coverage (unit, integration, and HTTP test suites), and a strong emphasis on portability across Unix, Windows, macOS, and embedded platforms.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: