Deploy with Vercel License: MIT Astro GitHub stars
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 dev
The app will be available at http://localhost:4321
# Build static site npm run build # Preview production build npm run preview
curlconverter-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