awesome-repositories.com
© 2026 Bringes Technology SRL·VAT RO45896025·hello@bringes.io
MCPSitemapPrivacyTerms
Curl | Awesome Repository
← All repositories

curl/curl

0
View on GitHub↗
40,877 stars·7,062 forks·C·other·0 viewscurl.se↗

Curl

Features

  • HTTP Clients - libcurl executes HTTP/3 requests using command-line flags to enforce protocol usage, enable automatic fallback, or upgrade connections via alternative service headers.
  • Multi-Protocol Transfer Libraries - Moving files and information between servers using a wide variety of network protocols through a unified and consistent interface.
  • Network Transfer Clients - libcurl moves data to or from a server using a wide range of supported network protocols by providing a target URL and necessary command-line options.
  • Network Transfer Engines - A unified engine abstracts diverse network protocols into a consistent interface for data movement and connection management.
  • Network Transfer Management - libcurl controls network transfers with support for persistent connections, proxy chaining, dual-stack IP addressing, DNS caching, and asynchronous name resolution across multiple platforms.
  • Certificate Verification - libcurl verifies server identity by checking digital signatures and hostnames against a local store of trusted certificate authorities for all encrypted connections.
  • Asynchronous Network Clients - libcurl executes multiple simultaneous network transfers within a single thread by using a multi-handle interface to manage operations without blocking execution.
  • Secure Connection Handlers - A security-focused layer that manages TLS encryption, certificate verification, and authentication credentials to ensure protected communication between client and server.
  • Network Automation CLI - Executing complex data transfers and API interactions directly from the terminal to streamline system administration and scripting workflows.
  • Connection Management Libraries - libcurl reuses network connections across multiple transfers by maintaining handles or connection pools to improve performance and reduce latency for subsequent requests.
  • HTTP/3 Libraries - libcurl compiles networking tools with HTTP/3 support by linking against QUIC-capable libraries to enable modern protocol capabilities.
  • Asynchronous State Machines - A non-blocking event loop manages multiple concurrent network transfers by tracking individual request states within a single thread.
  • Authentication Clients - libcurl enables secure credential provision for Basic or Proxy authentication to access protected resources without exposing sensitive passwords directly in the command-line interface.
  • Remote Access Security - Authenticating and encrypting network communications to safely interact with protected web services and remote file systems.
  • System Trust Stores - libcurl leverages operating system-native certificate stores to automatically manage and verify server identities using system-wide trusted root certificates.
  • TLS Transfer Security - libcurl performs encrypted transfers using TLS, including client-side certificate authentication and server certificate verification with custom certificate authority bundles for added security.
  • HTTP Request Clients - libcurl enables retrieving web content using standard HTTP methods like GET or HEAD to perform single or multiple requests within a single command execution.
  • Network Transfer Libraries - A portable collection of functions that provides developers with a stable interface for performing complex network operations in applications.
  • Synchronous Network Clients - libcurl executes network transfers by configuring a handle with options and running the request until completion in a blocking manner.
  • File Transfer Clients - libcurl enables transferring local files to a web server using the HTTP PUT method to stream data directly to a configured server-side endpoint.
  • Command Line Network Clients - A versatile tool for transferring data to or from servers using a wide range of protocols via terminal commands.
  • Connection Pooling Mechanisms - Persistent network sockets are cached and reused across sequential requests to minimize latency and reduce overhead during data transfers.
  • HTTP Header Parsers - libcurl retrieves and iterates through specific HTTP response headers from network requests using a dedicated programmatic interface.
  • Cryptographic Backends - The system dynamically links against various cryptographic libraries to provide secure encrypted communication across different operating systems.
  • Network Protocol Debuggers - Inspecting raw request and response headers to troubleshoot connectivity issues and verify server behavior during application development.
  • Form Submission Clients - libcurl supports sending HTML form data using GET or POST methods, including file uploads and hidden fields, to interact with server-side applications and services.
  • URL Parsers - libcurl builds URLs using standard components including scheme, userinfo, hostname, port, path, query, and fragment, with support for various IP address formats.
  • Data Transfer Engines - A robust engine that handles diverse communication standards including HTTP, FTP, and MQTT to facilitate seamless data exchange across networks.
  • HTTP Request Customization - libcurl supports modifying HTTP headers like Referer or User-Agent to mimic specific browsers or bypass server-side restrictions while managing automatic redirects for seamless data retrieval.
  • Protocol Dispatchers - The system parses input addresses to identify the required protocol handler and route data through the appropriate communication logic.
  • URL Parsers - A specialized component that parses, validates, and constructs network addresses while managing complex redirect logic and scheme-specific operations.
  • URL Utilities - libcurl validates URLs according to standard specifications while managing security risks associated with inconsistent parsing across different libraries and applications.
  • Cookie Management - libcurl interfaces with the internal cookie engine using library options to load, save, manually inject, or extract cookie data during network transfers.
  • HTTP Cookie Managers - libcurl activates a built-in cookie engine using command-line flags to automatically receive, store, and send cookies across multiple HTTP requests according to standard specifications.
  • Session Management - A centralized module parses, stores, and injects session data into outgoing requests to maintain state across multiple network interactions.
  • Curl is a command-line tool and portable library for transferring data across a wide range of network protocols. It functions as a unified engine that abstracts diverse communication standards, allowing users and developers to move files and information between servers using a consistent interface. The project provides both a versatile command-line client for terminal-based automation and a stable programmatic interface for integrating complex network operations into applications.

    The system is distinguished by its protocol-agnostic core and its ability to manage both synchronous and asynchronous network transfers. It features a non-blocking event loop that enables multiple simultaneous transfers within a single thread, alongside a connection pooling mechanism that reuses network sockets to minimize latency. Security is a primary focus, implemented through a pluggable architecture that supports various cryptographic backends, native certificate store integration, and comprehensive authentication mechanisms for protected resources.

    Beyond core data movement, the project includes extensive support for modern networking standards, including HTTP/3, WebSockets, and MQTT. It offers sophisticated state management through a built-in cookie engine and provides granular control over request headers, URL construction, and batch processing. These capabilities are supported by robust debugging tools that allow for the inspection of raw request and response data during development.

    The project is distributed with standard configuration scripts and package management support to facilitate integration into diverse build environments.