api-gateway - A Easy, Powerful, Fexible API Gateway

Installation
To install the package, run:
go install github.com/go-zoox/api-gateway/cmd/api-gateway@latest
Quick Start
# start api-gateway, cached in memory, default udp port: 80
api-gateway
# start api-gateway with config (see conf/api-gateway.yml for more options)
api-gateway -c api-gateway.yml
Configuration
See the configuration file.
Features
Current Features
- ✅ Simple Configuration: YAML-based configuration
- ✅ Flexible Routing: Support for prefix and regex-based path matching
- ✅ Path Rewriting: Advanced path rewriting rules
- ✅ Plugin System: Extensible plugin architecture
- ✅ Health Checks: Built-in health check for gateway and backend services
- ✅ Request/Response Transformation: Header and query parameter modification
- ✅ Cache Support: Redis cache integration
- ✅ Authentication Config: Support for various authentication types (basic, bearer, jwt, oauth2, oidc)
Planned Features (Roadmap)
See TODO List for detailed development plan.
High Priority (Core Features):
- 🔴 Load Balancing - Multi-instance backend support with various algorithms
- 🔴 Rate Limiting - API throttling and rate control
- 🔴 Timeout Control - Request timeout management
- 🔴 Retry Mechanism - Automatic retry with backoff strategies
- 🔴 Monitoring & Observability - Prometheus metrics, distributed tracing
Medium Priority (Important Features):
- 🔴 Circuit Breaker - Fault tolerance and failure handling
- 🔴 CORS Support - Cross-origin resource sharing
- 🔴 Authentication Implementation - Complete auth/authz implementation
- 🔴 Request Validation - Input validation and schema checking
- 🔴 Response Caching - Response caching with TTL support
Low Priority (Enhancement Features):
- 🔴 WebSocket Support - WebSocket proxy support
- 🔴 SSL/TLS Termination - TLS termination at gateway
- 🔴 Service Discovery - Kubernetes, Consul, etcd integration
- 🔴 Canary Deployment - Traffic splitting and A/B testing
- 🔴 Request/Response Body Transformation - JSON/XML transformation
- 🔴 API Versioning - Structured API version management
- 🔴 Access Logging - Structured request/response logging
- 🔴 Multi-Protocol Support - gRPC, GraphQL support
Contributing
We welcome contributions! Please see our TODO List for features we're planning to implement.
License
GoZoox is released under the MIT License.