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

Router Laravel Package

aura/router

Aura\Router is a fast, standalone PHP routing library with PSR-7 support, named routes, route groups, and flexible matching for web apps and APIs.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — weak for a Laravel core, plausible at the edges. Aura.Router is a standalone matcher: it takes a request, a RouteCollection, and returns a Route plus params. Laravel's Illuminate\Routing is not a router in that sense — it is a request-lifecycle orchestrator that also owns middleware priority sorting, controller/closure dispatch, implicit and explicit model binding, route:cache compilation, named-route URL generation, signed URLs, rate limiting, domain/subdomain grouping, resource & API shorthand, fallback routes, and Precognition. Aura covers roughly the "match method + path to a name and parameters" slice, which is the smallest part of what a Laravel app depends on. Treating it as a drop-in replacement would mean re-implementing the other ~70% in-house, with no upstream to lean on. Where it does fit is a framework-agnostic library or a PSR-7 service that must run both inside and outside Laravel.

Integration feasibility — feasible only behind an interface we own. There is no first-party Laravel service provider, no facade, no route:list equivalent, and Aura's dispatcher (aura/dispatcher) is not PSR-15, so any middleware bridge is custom glue. A realistic integration is: a RouterInterface port in our codebase, with an Illuminate\Routing adapter as the default and an Aura adapter used by exactly one service. Note the ecosystem signals: 500 stars, 0 recorded dependents, and an opportunity score of 26 — this is a mature but low-momentum package, effectively single-maintainer (Paul M. Jones). That is a maintainability consideration, not a disqualifier, but it means we are the integration team of record.

Technical risk.

  • Convention drift: named routes, param regex conventions, optional segments, and trailing-slash behavior differ; subtle 404-vs-405 semantics will diverge from Laravel's.
  • Loss of route:cache: Aura has no equivalent compiled-route artifact we can rely on; high-route-count services will regress on cold start until proven otherwise.
  • URL generation parity: Aura's generation is not interchangeable with route() / URL::signedRoute(); any Blade or API response emitting URLs becomes a compatibility surface.
  • Double parsing: bridging Illuminate\Http\Request → PSR-7 → matcher adds a conversion layer and an extra failure point in the hot path.
  • Semver history: Aura majors have historically been API-breaking (v2 → v3 → v4), so pinning and upgrade budgeting matter.
  • Bus factor: one maintainer, slow cadence, April 2025 release.

Key questions for the team.

  1. What specific requirement does Illuminate\Routing fail today — PSR-7 interop at the edge, framework independence for a reusable package, or something else?
  2. Is the actual target a non-Laravel PSR-7 service, in which case the comparison should be FastRoute/Slim/Mezzio rather than a Laravel swap?
  3. Who owns the bridge code, and what is the exit cost if Aura stalls?
  4. Do we need route()-equivalent URL generation and route caching on day one, and has anyone measured the gap?
  5. Why this package over nikic/fast-route (far larger install base) or Slim's router for PSR-7 use cases?

Integration Approach

Stack fit. Poor for a Laravel application's primary routing table. Reasonable for (a) a shared PHP library that must not depend on illuminate/*, or (b) a new PSR-7 microservice inside a Laravel-centric estate. It is a poor fit as a standardization choice, because it introduces a second routing mental model the team must hold alongside Laravel's.

Migration path — do not swap the router. The defensible sequence is incremental and reversible:

  1. Define a narrow internal RouterInterface (match request → route name + params) that our domain code consumes.
  2. Keep Illuminate\Routing as the production implementation for all existing apps — zero behavior change.
  3. Only where framework independence is a hard requirement, implement the Aura adapter and prove parity on that one surface.
  4. Reject any proposal that routes existing Laravel traffic through Aura unless the route:cache and URL-generation parity gaps are closed and benchmarked.

Compatibility checks before committing.

  • PHP version constraint vs. our pinned runtime floor (and our upgrade cadence).
  • PSR-7 implementation choice (nyholm/psr7, laminas-diactoros, guzzlehttp/psr7) and whether we already ship one — adding a second PSR-7 implementation is a real footgun given immutability/interop quirks.
  • PSR-11 container and PSR-15 middleware: Aura does not ship either, so glue is ours.
  • Laravel version coupling: if the adapter lives inside a Laravel app, test against every LTS we support.

Sequencing. Timebox a 1–2 week spike on a single non-critical, low-traffic surface (an internal webhook receiver or a package that genuinely must run in both Laravel and non-Laravel contexts). Gate the decision on three demonstrable outcomes: parity on 404/405 and param binding, a working URL-generation story, and a measured cold-start delta versus route:cache. If any gate fails, the answer is "keep Illuminate\Routing," and that is a successful outcome of the spike.

Operational Impact

Maintenance. We own the bridge, the adapter tests, and the upgrade work across Aura majors. Release cadence is slow (last release April 2025) but non-trivial majors mean scheduled migration work. With one effective maintainer and 0 recorded dependents, upstream will not absorb our integration bugs and there is no community of Laravel users to search when something breaks. Budget ongoing ownership, not a one-time integration.

Support. Aura's documentation is competent but framework-agnostic; nothing in it maps to Laravel idioms. On-call engineers debugging a routing incident will be reading source for two routers instead of one. Internal runbooks and a short internal training note are prerequisites, not nice-to-haves.

Scaling. Routing itself is not the bottleneck at typical route counts. The risk is cold start and horizontal scale-out: Laravel's compiled route cache is a meaningful advantage for high-replica deployments, and Aura has no comparable built-in artifact. Horizontal scaling also multiplies the cost of any per-request PSR-7 conversion. Benchmark at our expected route count (not a 10-route demo) before signing off.

Failure modes to instrument.

  • Unmatched route → 404 rendered by Aura vs. Laravel's exception handler; response shape and logging will diverge.
  • Method-not-allowed → 405 handling and Allow header behavior.
  • Trailing slash, optional segments, and prefixed groups resolving differently between the two routers during any coexistence period.
  • URL generation drift producing broken links or invalid signatures in emails, webhooks, and API payloads.
  • Middleware ordering differences if a PSR-15 pipeline is composed by hand.
  • Silent double-routing: a request matched by Laravel middleware but dispatched by Aura (or vice versa), which is hard to reproduce and easy to ship.

Ramp-up. Low for the small number of engineers who will touch the adapter (a few days with the docs and source). Non-trivial for the broader team, which now has two routing vocabularies. Assume 1–2 sprint-equivalents of fully loaded engineering effort for the spike plus a production-grade adapter, before any business value is realized — against a package whose opportunity score (26) suggests limited leverage.

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.
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings