curl: Command-line tool for data transfer
Command-line tool and C library for URL-based data transfer supporting 25+ protocols.
Learn more about cURL
curl is a command-line utility and libcurl is its underlying C library for transferring data to and from servers using URL syntax. The tool implements client-side support for numerous internet protocols through a unified interface, handling authentication, SSL/TLS encryption, and various transfer methods. curl operates as a single binary that can perform HTTP requests, file transfers, email operations, and real-time streaming across different network protocols. It serves as a foundation for web scraping, API testing, file synchronization, and automated data transfer workflows.
Protocol Coverage
Implements client support for over 25 internet protocols including HTTP/HTTPS, FTP/FTPS, SMTP/SMTPS, IMAP, WebSocket, and MQTT. This broad protocol support eliminates the need for multiple specialized tools.
Library Integration
Provides libcurl as a C library that applications can embed for network transfer functionality. The library offers the same protocol support and features as the command-line tool through a programmatic interface.
Cross-Platform Availability
Runs natively on virtually all operating systems and architectures, from embedded systems to mainframes. The consistent behavior across platforms makes it reliable for automation and scripting.
See how people are using cURL
Top in Networking
Related Repositories
Discover similar tools and frameworks used by developers
Jitsi Meet
WebRTC video conferencing with self-hosting and embeddable SDKs.
ngrok
Original ngrok v1 reverse proxy (2013-2016, archived). For current ngrok, see the cloud service.
ProxyChains
Force TCP connections through chained SOCKS/HTTP proxies via LD_PRELOAD.
Nginx Proxy Manager
Web UI for Nginx reverse proxy and SSL management.
SwitchyOmega
Browser extension for managing and switching between multiple proxy configurations.