
A full-stack rate limiting system with a React frontend and Go backend that allows dynamic configuration of API rate limits.
- Real-time rate limit configuration through a modern UI
- Dynamic rate limiting for different API endpoints
- Distributed rate limiting using Redis and MongoDB
- Default and custom rate limits per endpoint
- Real-time monitoring and updates
- Dark mode UI with Material-UI components
- Built with React and TypeScript
- Material-UI (MUI) for component styling
- Responsive design with a modern dark theme
- Real-time updates for rate limit configurations
- Go server with HTTP endpoints
- Redis for rate limit caching
- MongoDB for persistent storage
- RabbitMQ integration for message queuing
- Middleware-based rate limiting implementation
GET /listroutes
- List all registered routes and their rate limitsPOST /ratelimit/changelimit
- Update rate limit for a specific endpointPOST /ratelimit/setlimit
- Set default rate limit for an endpoint
- Clone the repository
- Set up environment variables
- Start the backend:
cd backend
go run main.go
- Start the frontend:
cd frontend/ratelimiter
npm install
npm run dev
Backend requires:
URI
- MongoDB connection stringMONGO_DB
- MongoDB database name- Redis configuration
- RabbitMQ configuration
MIT