Open-Source Wikis

/

curl

/

curl

/

Glossary

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.

Glossary – curl wiki | Factory