Skip to content

Toolpaper · Research

cURL converter capability matrix

18 code targets across 12 languages, 12 curl features each - what every generated client handles natively, computed from the converter's own handling table. Data date 2026-11-05.

Key findings

  1. Toolpaper's converter emits code for 18 targets across 12 languages, and every conversion runs client-side in the browser.

    Link to this finding
  2. requests (Python) handles the most curl features natively: 9 of 12.

    Link to this finding
  3. All 18 targets handle head requests and timeouts.

    Link to this finding
  4. HTTP/2, HTTP version selection, Retries, Cookie files, Cookie jars are handled by at most two targets; elsewhere the converter warns instead of emitting partial code.

    Link to this finding

Native handling by target

A ✓ means the generated code handles the feature itself; a dash means the converter shows an inline warning instead of emitting partial code. Every ✓ is verified by a test that generates code from the feature's flags and checks the emitted output.

Swipe sideways to compare all 18 targets →

Featurecurl flagsfetch (browser/Node)Node fetch (18+)axioskyrequestshttpxaiohttpnet/httpext-curlGuzzlenet/httpreqwestOkHttp (Java)OkHttp (Kotlin)HttpClient (.NET)Invoke-RestMethodURLSessionHTTPie
HEAD requests-I, --head✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓
Timeouts--max-time, --connect-timeout✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓
Follow redirects-L, --location✓✓✓✓✓✓—✓✓✓—✓✓✓✓✓✓✓
Fail on HTTP errors-f, --fail✓✓✓✓✓✓——✓✓—✓✓✓✓———
Compressed responses--compressed————✓✓✓✓✓✓——✓✓✓✓✓—
Proxies-x, --proxy-user——✓—✓✓✓✓✓✓—✓——✓✓—✓
Skip TLS verification-k, --insecure———————✓✓——————✓——
HTTP/2--http2—————✓——✓—————————
HTTP version selection--http1.1, --http2————————✓✓————————
Retries--retry———✓✓—————————————
Cookie files-b cookies.txt————✓—————————————
Cookie jars-c cookies.txt————✓—————————————

Method and sources

  • Source: the converter's own per-target handling table (HANDLED_BY_TARGET in src/lib/curl-parser.ts) - the same table that decides which warnings the workbench shows - so this page cannot drift from converter behavior.
  • Scope: 12 curl features the parser can detect, across all 18 targets the converter emits. Features the parser does not model at all are out of scope, not marked unsupported.
  • Data date is when the handling table last changed, not when the page was rebuilt.

Cite this page: Toolpaper (2026). cURL converter capability matrix. https://toolpaper.manavdev.site/research/curl-capability-matrix (data as of 2026-11-05).

FAQ

How many languages can Toolpaper convert curl to?

18 targets across 12 languages, including 3 Python libraries. The full matrix above lists what each handles natively.

Link to this answer
What happens when a feature is not supported?

The converter keeps the flag visible as an inline warning next to the generated code instead of silently dropping it, so nothing gets lost between your curl command and the client you ship.

Link to this answer
Where does this matrix come from?

It is computed from the same per-target handling table the converter uses when deciding which warnings to show, covering 12 curl features. It cannot drift from actual converter behavior.

Link to this answer
Does my curl command leave my browser?

No. Parsing, generation, and this matrix all run client-side; no server ever sees your command.

Link to this answer