[![npm](https://img.shields.io/npm/v/express-rate-limiter-ts)](https://www.npmjs.com/package/express-rate-limiter-ts)
[![license](https://img.shields.io/npm/l/express-rate-limiter-ts)](https://github.com/benemiryilmazer/express-rate-limiter-ts/blob/main/LICENSE)
[![downloads](https://img.shields.io/npm/dm/express-rate-limiter-ts)](https://www.npmjs.com/package/express-rate-limiter-ts)
[![TypeScript](https://img.shields.io/badge/TypeScript-4.x-blue?logo=typescript)](https://www.typescriptlang.org/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/benemiryilmazer/express-rate-limiter-ts/pulls)

# 🚦 express-rate-limiter-ts

Modern, asynchronous and production-ready Express.js rate limiter middleware.

---

## 🚀 What is it?

**express-rate-limiter-ts** is a powerful, flexible, and type-safe rate limiting solution for Node.js/Express projects. It can be easily used in both development and production environments. Fully compatible with popular databases like Redis, MongoDB, and Postgres.

---

## 🎯 Key Features
- Asynchronous and production-ready store support (Redis, MongoDB, Postgres, Memory, Dummy)
- Route-based and user-based dynamic limits
- Whitelist, blacklist, ban, and custom response support
- Advanced rate limit headers (X-RateLimit-*, RateLimit-*)
- Live statistics and ban management with admin panel (works with all stores)
- Full TypeScript support and type safety
- Comprehensive tests and documentation

---

## 📚 Setup & Usage Guides

➡️ For all setup and usage guides, please see the full documentation at:
[Documentation](https://github.com/benemiryilmazer/express-rate-limiter-ts/blob/main/docs/README.md)

---

## 🤝 Contributing
1. Fork and work on your own branch.
2. Test your changes.
3. Submit a pull request.

For detailed contribution guidelines, see:
- [🤝 Contributing Guide](https://github.com/benemiryilmazer/express-rate-limiter-ts/blob/main/docs/general/CONTRIBUTING.md)

---

## 📝 License

This project is licensed under the MIT License. See the full license at:
[LICENSE](https://github.com/benemiryilmazer/express-rate-limiter-ts/blob/main/LICENSE)

---

For any suggestions, contributions, or bug reports, please open an issue on GitHub!