Convert cURL commands to code in 14+ programming languages - Fast, secure, and runs entirely in your browser. No server-side processing, no data collection.
π Live Demo: curlconverter.net
- π 14+ Languages Supported - Python, JavaScript, Node.js, Go, PHP, Java, C#, Rust, Swift, Dart, Perl, PowerShell, Wget, and cURL formatter
- π¦ Multiple Library Variants - Each language supports multiple popular HTTP libraries (e.g., Python: Requests & HTTP Client)
- π¨ Modern UI/UX - Clean, professional design with gradient accents and smooth animations
- β‘ Instant Conversion - Real-time code generation with 300ms debounce
- π 100% Client-Side - All processing happens in your browser, no data sent to servers
- π± Responsive Design - Works seamlessly on desktop, tablet, and mobile
- π― Quick Examples - Pre-built examples for GET, POST, PUT, DELETE, Form Data, and Custom Headers
- π SEO Optimized - Individual pages for each language (/python, /javascript, etc.)
- πͺ RequestBin Integration - One-click "Open in RequestBin" for live testing
| Language | Libraries/Variants |
|---|---|
| Python | Requests, HTTP Client |
| JavaScript | Fetch API, XMLHttpRequest |
| Node.js | Native HTTP, Axios, Got |
| Go | HTTP, Resty |
| PHP | cURL, Guzzle |
| Java | HttpClient, OkHttp, HttpURLConnection |
| C# | HttpClient, RestSharp |
| Rust | Reqwest, Ureq |
| Swift | URLSession, Alamofire |
| Dart | HTTP, Dio |
| Perl | LWP, HTTP::Tiny |
| PowerShell | Invoke-WebRequest, Invoke-RestMethod |
| Wget | Standard, Mirror |
| cURL | Windows CMD, PowerShell |
- Node.js 18+ and npm
- Modern web browser
# Clone the repository
git clone https://github.com/requestbin/curlconverter.git
cd curlconverter
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:4321
# Build static site
npm run build
# Preview production build
npm run previewcurlconverter-net/
βββ src/
β βββ components/
β β βββ ConverterIsland.tsx # Main converter UI (React island)
β β βββ CtaOpenInRequestBin.tsx # RequestBin integration
β βββ lib/
β β βββ generators/ # Code generators for all languages
β β β βββ index.ts
β β β βββ python.ts
β β β βββ javascript.ts
β β β βββ ... (14 generators)
β β βββ curlconverter.ts # cURL parser
β β βββ languages.ts # Language metadata
β β βββ examples.ts # Quick example templates
β βββ pages/
β β βββ _layout.astro # Global layout
β β βββ index.astro # Homepage
β β βββ python.astro # Language-specific pages
β β βββ javascript.astro
β β βββ ... (14 language pages)
β βββ styles/
β βββ global.css # Global styles + Tailwind
βββ public/
β βββ robots.txt
β βββ sitemap.xml
βββ astro.config.mjs # Astro configuration
βββ tailwind.config.cjs # Tailwind CSS config
βββ package.json
- Astro - Static Site Generator with Islands architecture
- React - Interactive UI components
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Vercel - Deployment platform
All cURL parsing and code generation happens entirely in the browser using TypeScript. No backend servers, no API calls, no data collection.
Each programming language has a dedicated page (/python, /javascript, etc.) with optimized meta tags and structured content for better search engine visibility.
- Tab-based Variants - Switch between library implementations seamlessly
- Quick Examples - Pre-built examples for common HTTP methods
- Real-time Conversion - Instant feedback with debounced updates
- Copy to Clipboard - One-click code copying
- Responsive Layout - Mobile-first design principles
Contributions are welcome! Here's how you can help:
- Create generator in
src/lib/generators/yourlang.ts:
import type { Request } from '../curlconverter';
export function generateYourLangLibrary1(request: Request): string {
// Implementation
return `// Generated code`;
}
export function generateYourLangLibrary2(request: Request): string {
// Alternative library implementation
return `// Generated code`;
}- Export generators in
src/lib/generators/index.ts:
export async function getYourLangGenerators() {
const { generateYourLangLibrary1, generateYourLangLibrary2 } = await import('./yourlang');
return {
'Library 1': generateYourLangLibrary1,
'Library 2': generateYourLangLibrary2,
};
}- Add language metadata to
src/lib/languages.ts:
export const TARGETS = [
// ... existing languages
{ value: 'yourlang', label: 'Your Language', icon: 'π·' },
] as const;-
Create language-specific page
src/pages/yourlang.astro -
Update sitemap.xml with new URL
- Use TypeScript for type safety
- Follow existing code structure and naming conventions
- Test generators with various cURL commands
- Ensure responsive design on mobile devices
- Add JSDoc comments for public functions
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the original curlconverter project
- Built with β€οΈ for the developer community
- Part of the RequestBin ecosystem
- RequestBin - Inspect HTTP requests with custom endpoints
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Website: curlconverter.net
Made with β and β‘ by the RequestBin Team
Website β’ RequestBin β’ Report Bug