Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rate Limit Bundle Laravel Package

perimeter/rate-limit-bundle

perimeter/rate-limit-bundle adds configurable rate limiting to Symfony applications, helping protect APIs, controllers, and routes from abuse. Define limits, choose storage, and throttle requests with minimal setup and flexible integration.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for API governance. Rate limiting is table stakes for any public API; this package is one data point in the "do we adopt an existing library or use framework primitives" evaluation. In this case it argues for primitives.
  • Packaging and monetization. Limits are the enforcement mechanism behind tiered plans (free = N req/min, paid = M). Any decision about quotas, overage handling, or fair-use policy lands directly on a limiter implementation.
  • Cost and blast-radius control. Limiting protects downstream dependencies — third-party APIs, the database, and especially metered LLM/paid endpoints — from spikes that convert directly into invoices or outages.
  • API contract decisions. Even if unused, its design is useful prior art: declarative per-route limits, a pluggable counter store, and standard 429 / Retry-After / X-RateLimit-* response headers. That informs our own design doc.
  • A negative reference case. The package profile — 41 stars, 0 dependents, last release 2015, Symfony-only — is itself a finding: document why we rejected it so the next person who stumbles on it doesn't re-open the evaluation.
  • Framework-fit check, which fails here. This is a Symfony bundle bound to the Symfony HTTP kernel and DI container, not a Laravel/PHP-agnostic package. Any Laravel roadmap item that lists it as a candidate should be closed on that basis alone.

When to Consider This Package

Realistically: almost never, and never as a new dependency.

Consider it only if:

  • You are maintaining a legacy Symfony 2.x application (pre-5.2) that already depends on it, and a rip-and-replace costs more this quarter than the accumulated risk — a trade that gets worse every month.
  • You want to read the source as a reference implementation, not install it.

Look elsewhere when:

  • You're on Laravel. There is no clean integration path from a Symfony bundle to Laravel's container and middleware stack. Laravel ships a RateLimiter facade and throttle middleware that cover this natively.
  • You're on modern Symfony. Since 5.2 the first-party symfony/rate-limiter component covers the same ground with active maintenance.
  • You need maintenance or security patching. No release in roughly nine years; supported PHP and Symfony versions are long EOL. A rate limiter sits in the request path of every API call — unmaintained code there is a liability, not a convenience.
  • You need multi-instance correctness. Evaluate Redis-backed limiting with atomic operations (Lua/INCR+EXPIRE) from a maintained first-party component or a vendor.
  • Adoption signal matters. Zero dependents and low stars indicate a package that never reached production traction. If it turns up in a dependency tree, treat that as a hygiene finding, not an opportunity.

How to Pitch It (Stakeholders)

Executives: Rate limiting is a product and cost-control primitive, not plumbing — it's how we enforce plan tiers and stop one client or one runaway integration from degrading the service or inflating cloud and third-party API spend. This specific package is not one we should adopt. It's a 2015-era Symfony bundle with no maintenance, no adopters, and no path into our Laravel stack. Adopting it would put unpatched, unowned code in the request path of every API call for zero benefit, because both Laravel and modern Symfony already ship maintained equivalents. The recommendation is to close this evaluation as "rejected" and move the effort to the policy work, which is the actual value.

Engineering: Treat it as prior art, not a dependency. Read it for the shape of the contract — declarative per-route limits, pluggable storage, standard 429/Retry-After/X-RateLimit-* responses — then implement on the framework's native limiter. Budget for the part that isn't the mechanism: which dimensions to key on (IP, API key, tenant), what the limits are per tier, and where counters live (Redis, not process-local) so behavior holds across instances.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox