curl/curl
Glossary
Terms used throughout the curl source tree and documentation. When in doubt, the source is authoritative — most of these are defined in include/curl/curl.h, lib/urldata.h, or the relevant subsystem header.
| Term | Meaning |
|---|---|
| easy handle | A CURL * opaque pointer (a struct Curl_easy internally) representing a single transfer's configuration and state. Created by curl_easy_init(). Defined in lib/urldata.h. |
| multi handle | A CURLM * (a struct Curl_multi) representing a set of concurrent transfers and shared caches. Created by curl_multi_init(). Defined in lib/multihandle.h. |
| share handle | A CURLSH * (a struct Curl_share) for sharing data — connection cache, DNS cache, cookies, TLS sessions, HSTS, PSL — across easy handles. Defined in lib/curl_share.h. |
| CURLcode | The libcurl error code type. Values listed in include/curl/curl.h. CURLE_OK = 0. |
| CURLMcode | Error type for the multi interface. CURLM_OK = 0. |
| CURLU | URL handle returned by curl_url(), manipulated with curl_url_set/get. Defined in include/curl/urlapi.h. |
| transfer | One application-level request/response pair from the perspective of the easy handle: from CONNECT through DONE. |
| connection | A struct connectdata representing a TCP/QUIC connection that may carry one or many transfers. Owned by the connection cache. Defined in lib/urldata.h. |
| connection filter (cfilter) | An object in struct Curl_cfilter (lib/cfilters.h) that processes the byte stream of a connection. Filters chain top-to-bottom: protocol → HTTP/2 → TLS → SOCKS → socket. |
| transfer state | One of INIT, PENDING, SETUP, CONNECT, RESOLVING, CONNECTING, PROTOCONNECT, PROTOCONNECTING, DO, DOING, DID, PERFORMING, RATELIMITING, DONE, COMPLETED. Walked by Curl_multi_runsingle() in lib/multi.c. |
| handler | A struct Curl_protocol (lib/protocol.h) that defines a protocol's scheme, port, and per-state callbacks. Each scheme has exactly one (e.g. Curl_protocol_http in lib/http.c, Curl_protocol_ftp in lib/ftp.c). |
| protocol family | A bitmask of CURLPROTO_* flags. Used to grant or deny protocols at runtime via CURLOPT_PROTOCOLS_STR. |
| vtls | "virtual TLS" — the abstraction in lib/vtls/ that lets curl swap TLS implementations (OpenSSL, GnuTLS, mbedTLS, Schannel, wolfSSL, Rustls, Apple SecTrust) behind a single Curl_ssl vtable. |
| vquic | The same idea for QUIC/HTTP-3, with backends in lib/vquic/ (ngtcp2, quiche). |
| vauth | Authentication-mechanism abstraction in lib/vauth/ (NTLM, Digest, SASL, Kerberos, SPNEGO, OAuth2, GSAPI). |
| vssh | SSH backend abstraction in lib/vssh/ (libssh2, libssh, wolfSSH). |
| DoH | DNS-over-HTTPS. curl can resolve names by issuing HTTPS requests through a separately-managed easy handle. Implementation: lib/doh.c. |
| HSTS | HTTP Strict Transport Security cache (lib/hsts.c). Persisted to disk via CURLOPT_HSTS. |
| alt-svc | Alternative-service cache (lib/altsvc.c) — lets curl be told "for this origin, use this other host/port/protocol". |
| PSL | Public Suffix List, used for cookie scope checks (lib/psl.c, libpsl). |
| netrc | The ~/.netrc file format for credentials. Parser in lib/netrc.c. |
| happy eyeballs | The dual-stack IPv4/IPv6 race that picks whichever connects first. Implementation: lib/cf-ip-happy.c. |
| CONNECT tunnel | An HTTP/1.x or HTTP/2 CONNECT request that opens a tunnel through a proxy. Implementation: lib/cf-h1-proxy.c and lib/cf-h2-proxy.c. |
| mime API | curl_mime_* family for building multipart/formdata bodies. Implementation: lib/mime.c. |
| easy_lock | A small spin-lock primitive used for shared state. Defined in lib/easy_lock.h. |
| dynbuf | A growable byte buffer (Curl_dyn_* in lib/curlx/dynbuf.c) used everywhere curl needs to assemble strings or messages. |
| bufq | A bounded queue of byte chunks (lib/bufq.c) used by HTTP/2, HTTP/3, and websockets to buffer frames. |
| dynhds | A dynamic header set (lib/dynhds.c) shared between HTTP/2 and HTTP/3 frame encoders. |
| CWriter / CClient | The "client write" callback chain that decompresses and dispatches response body bytes to the application. Implementations: lib/sendf.c, lib/cw-out.c, lib/cw-pause.c, lib/content_encoding.c. |
| CURLDISABLE… | Compile-time feature toggles defined in lib/curl_setup.h. Setting one removes the corresponding code from the binary. |
| curlx | Internal portability library shared between lib/ and src/. Lives in lib/curlx/ and is statically linked into both libcurl and the curl tool. Not part of the public API. |
| curldown | A flavor of Markdown used for curl's man-page sources under docs/. Rendered to nroff by scripts/cd2nroff and scripts/managen. See docs/CURLDOWN.md. |
| checksrc | curl's in-tree style checker (scripts/checksrc.pl) run by make checksrc and on every PR. |
| autobuilds | The historic distributed build farm where volunteers ran tests/testcurl.pl against curl on exotic platforms. Largely superseded by GitHub Actions matrices. |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.