cURL to Rust (reqwest & tokio) コードジェネレーター
cURL コマンドを、reqwest、serde_json、カスタムヘッダー、Tokio 非同期ランタイムを活用した慣用的で安全な Rust HTTP クライアントコードへ瞬時に変換します。
//! cURL to Rust HTTP Client generated by ToolsAA (reqwest & tokio)
//! Zero-server-upload client-side generation, memory safe and asynchronous.
use reqwest::Client;
use serde::{Deserialize, Serialize};
// ============================================================================
// TYPE-SAFE DATA MODELS (Serde derive)
// ============================================================================
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MessagItem {
pub role: String,
pub content: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RequestPayload {
pub model: String,
pub temperature: f64,
pub max_tokens: i64,
pub stream: bool,
pub messages: Vec<MessagItem>,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Thread-safe reqwest client with internal connection pooling
let client = Client::new();
// Construct typed Rust request payload
let payload = RequestPayload {
model: "gpt-4o".to_string(),
temperature: 0.7,
max_tokens: 1024,
stream: false,
messages: vec![
MessagItem {
role: "system".to_string(),
content: "You are an expert Rust systems programmer.".to_string(),
},
MessagItem {
role: "user".to_string(),
content: "Explain zero-cost abstractions in reqwest and tokio.".to_string(),
}
],
};
// Build and dispatch HTTP request
let response = client.post("https://api.openai.com/v1/chat/completions")
.bearer_auth("sk-proj-1234567890abcdef")
.json(&payload)
.send()
.await?;
// Inspect HTTP status code
let status = response.status();
println!("Status Code: {}", status);
// Parse response body as structured JSON
let json_body: serde_json::Value = response.json().await?;
println!("Response JSON:\n{:#}", json_body);
Ok(())
}100% クライアントサイド変換
cURL構文の解析、引数のトークン化、Rustコードの生成はすべてブラウザのメモリ内で完結。認証情報やURLが外部サーバーへ送信されることは一切ありません。
非同期 Tokio & reqwest イディオム
reqwest と Tokio ランタイムを活用した最新の非同期 Rust コードを生成。ビルダーパターン、構造化ヘッダー、? 演算子による自然なエラー伝播をサポートします。
Cargo.toml 生成 & 主要フラグ完全対応
必要な Cargo.toml の依存クレートとフィーチャーを自動生成。クエリパラメータ、Bearerトークン、Basic認証(-u)、マルチパートフォーム、タイムアウト、TLS設定に完全対応。