cURL with Basic auth in Rust

Paste a curl command that uses Basic auth and get Rust code using reqwest. Toolpaper also detects secrets and offers a one-click redaction before sharing.

Quick answer

To convert a cURL command to Rust, paste it into the Toolpaper workbench below. It parses the command in your browser and emits idiomatic Rust code — headers, query string, request body, authentication (Bearer, Basic, API key), and cookies are all wired up automatically. No data is uploaded; conversion is fully client-side.

Prefer a different target? See the full cURL to Rust reference, or jump to the same guide in JavaScript, Node.js, or Python.

InputcURL command
1 secret
MethodGET·Headers0·Body—·Authbasic· Chars 51
OutputRust · reqwest(blocking)
// Cargo.toml: reqwest = { version = "0.12", features = ["json", "blocking", "gzip", "brotli"] }
use reqwest::blocking::Client;
use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
use std::str::FromStr;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::builder().redirect(reqwest::redirect::Policy::none()).build()?;
    let mut headers = HeaderMap::new();

    let mut req = client.get("https://api.example.com/me").headers(headers);
    req = req.basic_auth("alice", Some("s3cret"));
    let resp = req.send()?;
    println!("{}", resp.text()?);
    Ok(())
}
Inspect

Example

A representative curl command for this scenario. Paste your own above to convert an exact match.

curl input
curl https://api.example.com/me \
  -u alice:s3cret

Implementation notes

  • -u user:pass is decoded and re-emitted as an idiomatic reqwest auth primitive rather than a hand-rolled base64 header.
  • Secrets are visible in the parsed request. Use the Clean panel's redact-and-diff flow before you paste the command anywhere.
  • Shareable links Base64-encode the input — they never leave your browser, and cleaned versions produce different links.

Common mistakes

  • Hard-coding user:pass into source instead of reading from env vars — the generated snippet marks credentials so you notice.
  • Not rotating a leaked credential because "it's only in a screenshot" — screenshots get OCR'd, redact first.
  • Trusting HTTPS alone for API keys in query strings — proxies log URLs. Prefer headers, which the converter defaults to.

Common questions

How is Basic auth rendered in Rust?
-u user:pass becomes an idiomatic Basic auth call — auth=(user, pass) in Python, SetBasicAuth in Go, .setBasicAuth in Java.
Can I redact the secret before sharing?
Yes. Open the Clean panel — Toolpaper detects Bearer tokens, Basic credentials, and common API-key patterns and replaces them with <REDACTED> in a diffable view.
Does anything leave my browser?
No. Parsing, redaction, and generation are 100% client-side.

More auth flows in Rust

Rust hub →

The same guide in other languages

All guides →

Full Rust reference on the cURL to Rust hub, or open the main converter for all 18 targets.