Weave Code
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

Core Laravel Package

async-aws/core

AsyncAws Core provides the shared foundation for AsyncAws AWS clients, including request signing, HTTP utilities, configuration and credential handling. Also includes an STS client for authentication. Install via composer and build AWS integrations with a lightweight SDK.

View on GitHub
Deep Wiki
Context7

[READ ONLY] Core package + STS client

Frequently asked questions about Core
How does AsyncAws Core improve Laravel’s AWS request handling compared to Guzzle or AWS SDK for PHP?
AsyncAws Core optimizes Laravel integrations with async operations (e.g., streams, queues) and a priority-based middleware stack that aligns with Laravel’s pipeline. It also reduces memory overhead via lazy-loaded clients and integrates natively with Laravel’s retry() helper for exponential backoff, unlike Guzzle’s manual retry logic.
Can I use AsyncAws Core’s STS client for Laravel’s temporary credentials in queues or jobs?
Yes. The STS client supports temporary credentials, which are ideal for Laravel queues or jobs to avoid long-lived IAM key exposure. Bind it to Laravel’s container via `AwsClientFactory` for dynamic credential rotation, especially in serverless or multi-tenant environments.
Will AsyncAws Core work with Laravel 10.x (PHP 8.2) or do I need to upgrade to Laravel 11+?
AsyncAws Core requires PHP 8.3+, so Laravel 10.x projects must upgrade to PHP 8.3+ to use it. Check your `composer.json` constraints and update Laravel’s `bootstrap/app.php` to enforce the version. The package drops PHP 8.2 support to leverage modern async features.
How do I mock paginated AWS responses (e.g., S3 listObjectsV2) in Laravel tests?
Use the `ResultMockFactory` to mock paginated responses directly in your tests. For custom paginators like `ContinuationToken`, manually define the mock structure in `Http::fake()` or extend the factory. This avoids flaky tests caused by AWS API limits in CI/CD pipelines.
Can I dynamically set AWS regions per request in Laravel, like for multi-tenant apps?
Yes. AsyncAws Core supports dynamic region resolution via `AwsClientFactory` or Laravel’s `config()`/`request()` context. Bind regions tenant-specifically in your service container or use middleware to inject the region before AWS operations.
How does AsyncAws Core’s middleware stack interact with Laravel’s middleware (e.g., auth, CORS)?
The middleware stack is priority-ordered, so AWS-specific middleware (e.g., retries, logging) can coexist with Laravel’s middleware. Group AWS middleware in a dedicated `AwsMiddleware` class and register it after Laravel’s core middleware in `app/Http/Kernel.php` to avoid conflicts.
Does AsyncAws Core support Laravel’s event system for observability (e.g., logging AWS API calls)?
Yes. The `AwsEventDispatcher` interface emits Laravel events (e.g., `AwsRequestStarted`) for observability. Listen to these events in `EventServiceProvider` or use `events:subscribe` for real-time monitoring with tools like Datadog or Sentry.
Are there performance benefits for Laravel queues using AsyncAws Core’s async features?
Absolutely. AsyncAws Core’s `ResponseBodyStream` and lazy-loaded clients reduce memory spikes in long-running queues (e.g., SQS processing). Pair it with Laravel’s `spawn()` or `parallel()` for high-throughput workloads, as the package is thread-safe for region-specific operations.
What’s the best way to handle middleware conflicts if AWS retries clash with Laravel’s TrustProxies?
Test middleware stacks in isolation using `Middleware::disable()` to identify conflicts. For retries, prioritize `AwsRetryMiddleware` after Laravel’s core middleware but before app-specific middleware. Document the order in your team’s architecture guide.
How do I integrate AsyncAws Core with Laravel Vapor for serverless deployments?
Leverage `AwsClientFactory` for region-agnostic, thread-safe clients in Vapor’s stateless functions. Use dynamic region binding via `request()->region` or `config()` to handle multi-region deployments. The package’s lazy-loading also minimizes cold-start overhead.
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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata