chuyskywalker/rolling-curl
Efficient curl_multi wrapper for fetching many URLs in parallel without overwhelming servers. Maintains a fixed number of simultaneous connections, rolling new requests in as others finish, with optional per-request callbacks to process responses as they arrive.
curl_multi implementations, reducing development time and maintenance overhead. Ideal for teams lacking low-level HTTP expertise.ext-curl enabled (required dependency).Pool or Symfony’s HttpClient.Promise, ReactPHP, or Laravel’s HttpClient better fit your async ecosystem or require fewer workarounds."RollingCurl enables our team to fetch thousands of web pages or API responses efficiently without overloading servers or risking IP bans—critical for [feature X, e.g., real-time competitor pricing or large-scale data migration]. It’s a low-code, high-impact solution that replaces error-prone custom HTTP logic, saving development time and reducing operational risk. With minimal overhead, it’s a scalable, cost-effective choice for parallel HTTP workloads, aligning with our goals for [performance/agility/cost savings]."
Key Outcomes:
curl_multi wheel.*"This package solves two critical problems for our HTTP-heavy workloads:
Why it fits Laravel:
Tradeoffs:
retry() helpers).Proposed Approach:
Alternatives:
Pool: More modern but heavier; may overkill for simple use cases.HttpClient: Good for small-scale concurrency but lacks fine-grained control."*Example Pitch for a Scraping Feature:
"For our [Product Name]’s competitor price tracking, we need to fetch 5,000+ product pages daily. Using sequential requests would take hours and risk IP bans. RollingCurl lets us process these in parallel with a controlled concurrency limit (e.g., 20 requests at once), completing the job in minutes while staying under rate limits. It’s a drop-in replacement for our current hacky curl_multi code, saving us weeks of dev time and reducing operational risk."
How can I help you explore Laravel packages today?