https://github.com/midnite81/guardian
Guardian provides a way to wrap HTTP requests so they don't exceed Rate Limiting rules and controls Error Handling
https://github.com/midnite81/guardian
error-handling http-requests rate-limiting
Last synced: 2 months ago
JSON representation
Guardian provides a way to wrap HTTP requests so they don't exceed Rate Limiting rules and controls Error Handling
- Host: GitHub
- URL: https://github.com/midnite81/guardian
- Owner: midnite81
- License: mit
- Created: 2024-09-29T18:46:49.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-07T21:32:14.000Z (9 months ago)
- Last Synced: 2025-04-14T16:18:43.816Z (2 months ago)
- Topics: error-handling, http-requests, rate-limiting
- Language: PHP
- Homepage: https://guardian.midnite.uk
- Size: 174 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Guardian
Guardian is a powerful and flexible rate limiting and error handling library for PHP applications. It provides a robust
system for managing API rate limits, preventing abuse, and handling errors gracefully. Guardian can be used in any PHP
project and has built-in support for Laravel applications. Full
documentation: [guardian.midnite.uk](https://guardian.midnite.uk)## Requirements
- PHP 8.2 or higher
## Key Features
- Flexible rate limiting rules
- Configurable error handling
- Multiple cache drivers (File, Redis, Laravel)
- Ability to add custom drivers
- Easy integration with Laravel
- Customizable for any PHP project## Installation
Install Guardian via Composer:
```bash
composer require midnite81/guardian
```## Quick Start
```php
use Midnite81\Guardian\Factories\GuardianFactory;
use Midnite81\Guardian\Store\FileStore;
use Midnite81\Guardian\Rules\RateLimitRule;$guardian = GuardianFactory::create(
'my-api',
new FileStore('/path/to/cache'),
[RateLimitRule::allow(100)->perMinute()]
);$result = $guardian->send(function() {
// Your API logic here
});
```## Documentation
For detailed usage instructions, API reference, and advanced configuration options, please refer to the official
Guardian documentation:[https://guardian.midnite.uk](https://guardian.midnite.uk)
## Future plans for Guardian
As of October 2024, Guardian has just been released and there is no roadmap as such for it as yet. Its use in the wild
might bring in required features.Some initial thoughts:
- More integration for Laravel, but introducing a config file to make getting instances more easily
- Adding in a way to work with PSR-7, PSR-18, PSR-17, and PSR-15## Contributing
Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for more details.
## License
Guardian is open-sourced software licensed under the [MIT license](LICENSE).