Convierte un comando curl a código de Rust con reqwest al instante en tu navegador. El comando permanece en tu dispositivo.
Conversor de curl a Rust
Convierte un comando curl a código de Rust con reqwest al instante en tu navegador. El comando permanece en tu dispositivo.
Tu comando curl se convierte a Rust localmente en tu navegador y nunca se sube, pero evita pegar tokens o credenciales de producción reales en cualquier herramienta.
cURL to Rust toma un comando curl que copiaste de una terminal, las DevTools del navegador o la documentación de una API y lo reescribe como un programa async de Rust basado en el crate reqwest. Lee banderas como -X, -H, -d, --data-raw, --json, -u y -G, elige el reqwest::Method correcto y opta por .json(...) para los cuerpos JSON válidos o .body(...) para las cargas de formulario o en bruto, así la petición coincide con lo que curl enviaría realmente. Una bandera -u/--user se convierte en una llamada idiomática .basic_auth(...) en lugar de una cabecera manual. Es útil cuando llevas una prueba rápida de API a un servicio en Rust, una herramienta de línea de comandos o una prueba de integración sin escribir a mano el código repetitivo de reqwest. Toda la conversión se ejecuta en tu navegador, así que el comando curl y cualquier token que contenga se procesan localmente en tu dispositivo y nunca se suben.
Características
Genera una async fn main() conectada con #[tokio::main] y reqwest::Client
Traduce el método de curl al reqwest::Method correspondiente, incluidos verbos personalizados
Construye un HeaderMap a partir de cada bandera -H/--header
Usa .json(&serde_json::json!(...)) para los cuerpos JSON válidos y .body(...) para las cargas de formulario o en bruto
Convierte -u/--user en una llamada idiomática .basic_auth(usuario, Some(contraseña))
Embellece los cuerpos JSON para que el literal sea fácil de leer y editar
Advierte sobre banderas sin equivalente en reqwest, como -k y las opciones de salida a archivo
Copia el resultado o descárgalo como request.rs con un clic
Cómo usar cURL a Rust
Pega tu comando curl en el cuadro del comando cURL.
Lee el programa de Rust con reqwest generado en el panel de salida.
Revisa el banner de advertencia por si hay banderas que se ajustaron u omitieron.
Haz clic en Copiar, o descarga el código como request.rs.
use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let mut headers = HeaderMap::new();
headers.insert(HeaderName::from_bytes(b"Content-Type")?, HeaderValue::from_str("application/json")?);
let response = client
.request(reqwest::Method::POST, "https://api.example.com/users")
.headers(headers)
.json(&serde_json::json!({
"name": "Ada"
}))
.send()
.await?;
println!("{}", response.status());
let body = response.text().await?;
println!("{}", body);
Ok(())
}
Un cuerpo JSON se pasa con .json(...) para que reqwest lo serialice por ti.
Errores comunes y solución de problemas
La salida usa .body(...) cuando esperabas .json(...). — Envía el cuerpo con --json o añade -H "Content-Type: application/json" para que el conversor lo reconozca como JSON y cambie a .json(...).
La compilación falla porque no encuentra el crate serde_json o tokio. — Añade reqwest (con la feature json), serde_json y tokio (con la feature full) como dependencias en Cargo.toml; el código generado depende de esos crates.
Un cuerpo JSON sale como una cadena entre comillas en vez de un literal de objeto. — Eso ocurre cuando el cuerpo no es JSON válido. Corrige el JSON, o consérvalo como cadena y envíalo con .body(...).
Falta la llamada .basic_auth(...) aunque el comando curl usaba -u. — Asegúrate de que el valor de -u sea exactamente usuario:contraseña. El conversor decodifica internamente la cabecera Basic auth que genera para recuperar el usuario y la contraseña.
Preguntas frecuentes
¿Cómo convierto un comando curl a Rust?
Pega el comando curl en el cuadro de entrada y cURL to Rust renderiza un programa async con reqwest a la derecha que puedes copiar o descargar como request.rs.
¿cURL to Rust genera código para reqwest u otro cliente HTTP?
Apunta al popular crate reqwest con tokio como runtime asíncrono y emite una async fn main() usando #[tokio::main]. Añade ambos crates a tu Cargo.toml antes de ejecutar el código.
¿Cuándo usa el conversor .json(...) en vez de .body(...)?
Usa .json(&serde_json::json!(...)) cuando el cuerpo es JSON válido (enviado con --json o un Content-Type JSON), y .body(...) para los cuerpos codificados como formulario o de cadena en bruto.
¿Cómo se maneja en la salida de Rust un valor de autenticación básica de curl -u?
Un valor de -u o --user se representa como .basic_auth(usuario, Some(contraseña)) en el constructor de la petición, en lugar de una cabecera Authorization construida a mano.
¿Se sube mi comando curl cuando lo convierto a Rust?
No. La conversión de curl a Rust se ejecuta por completo en tu navegador, así que el comando y cualquier credencial que contenga permanecen en tu dispositivo.
¿De qué crates depende el código de reqwest generado?
La salida espera reqwest (con la feature json), serde_json y tokio (con la feature full) como dependencias; añádelas con cargo add antes de compilar.
Herramientas relacionadas
cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
curl a Python — Convierte un comando curl en un script de Python con requests.
curl a Go — Convierte un comando curl en código de Go con net/http.
curl a Node.js — Convierte un comando curl en código de Node.js con axios.
curl a PHP — Convierte un comando curl en un script PHP con la extensión cURL.
Cliente de API — Envía peticiones HTTP, crea cabeceras y parámetros e inspecciona respuestas; guarda tus últimas 25.
Más herramientas de Herramientas de API
HAR a cURL — Convierte peticiones de un HAR en comandos cURL ejecutables.
Postman a cURL — Convierte una colección de Postman en comandos cURL.
cURL a C# — Convierte un comando curl en código C# con HttpClient.
cURL a Java — Convierte un comando curl en código Java con HttpClient.
cURL a Ruby — Convierte un comando curl en código Ruby con Net::HTTP.
cURL a PowerShell — Convierte un comando curl en una llamada Invoke-RestMethod de PowerShell.
cURL a Swift — Convierte un comando curl en código Swift con URLSession.
cURL a Dart — Convierte un comando curl en código Dart con package:http.
cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
Analizador de URL — Descompone una URL en sus partes y lista los parámetros de consulta.
Cliente de API — Envía peticiones HTTP, crea cabeceras y parámetros e inspecciona respuestas; guarda tus últimas 25.
Generador de URL y UTM — Construye y valida URL de producción codificadas con parámetros UTM.