Skip to content

πŸš€ CORS Proxy v1.0.0 - Initial Release

Choose a tag to compare

@melihbirim melihbirim released this 08 Jan 18:07
· 21 commits to main since this release

πŸš€ CORS Proxy v1.0.0

A lightning-fast, simple CORS proxy server written in Go. Deploy anywhere with one click!

🌐 Live Demo

Try it now: https://corsproxy-8uo5.onrender.com

✨ What's New

This is the initial release of CORS Proxy with production-ready features:

Core Features

  • ⚑ Fast Go-based proxy - Maximum performance with minimal overhead
  • πŸ”“ Full CORS support - Handles all CORS headers automatically
  • 🎯 Zero dependencies - Uses only Go standard library
  • 🐳 Docker ready - Multi-stage builds for minimal image size (~10MB)

Configuration & Security

  • πŸ”’ Rate limiting - Configurable per-IP rate limits
  • πŸ›‘οΈ Host filtering - Allowlist/blocklist support
  • βš™οΈ Environment-based config - Easy deployment configuration
  • πŸ” Security limits - Request size (10MB) and timeout (30s) protection

Deployment

  • πŸš€ One-click deploy - Railway, Render, Fly.io, Koyeb support
  • πŸ“¦ Docker Compose - Local development made easy
  • πŸ₯ Health checks - Built-in /health endpoint

Developer Experience

  • πŸ§ͺ Comprehensive tests - Automated test suite with 10 test cases
  • πŸ› οΈ Makefile - Simple build, test, and deploy commands
  • πŸ“ Documentation - Complete README with examples
  • 🀝 Contribution ready - Issue templates and guidelines

πŸ“₯ Installation

Quick Start

# Run with Docker
docker run -p 8080:8080 ghcr.io/melihbirim/corsproxy:latest

# Or with Go
go install github.com/melihbirim/corsproxy@latest

From Source

git clone https://github.com/melihbirim/corsproxy.git
cd corsproxy
make build
./bin/cors-proxy

πŸ“– Usage

# Basic usage
curl "http://localhost:8080/?url=https://api.github.com/users/octocat"

# With JavaScript
fetch('http://localhost:8080/?url=https://api.example.com/data')
  .then(r => r.json())
  .then(data => console.log(data));

πŸ”§ Configuration

Configure via environment variables:

  • PORT - Server port (default: 8080)
  • RATE_LIMIT_PER_MINUTE - Rate limit per IP (default: 0/disabled)
  • ALLOWED_ORIGINS - Comma-separated CORS origins (default: *)
  • MAX_REQUEST_SIZE - Max request size in bytes (default: 10MB)
  • See README for full list

🀝 Contributing

We welcome contributions! Check out our good first issues to get started.

πŸ“Š What's Next

See our roadmap for planned features:

  • Prometheus metrics endpoint
  • Response caching
  • API key authentication
  • Circuit breaker pattern
  • And more!

πŸ™ Acknowledgments

Built with Go and ❀️ by @melihbirim


Full Changelog: https://github.com/melihbirim/corsproxy/blob/main/CHANGELOG.md