async
boxed
async | boxed | |
---|---|---|
8 | 6 | |
2,537 | 613 | |
0.6% | 2.3% | |
5.9 | 8.4 | |
3 months ago | 1 day ago | |
PHP | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
async
-
PHP in 2023 - stitcher.io
I really wanna get into writing more asynchronous PHP but having to switch to a whole different web server and execution mode is a major stumbling block. The only library (that I know of) that allows asynchronous code in traditional PHP environment is this one by Spatie.
-
Is it possible that PHP will ever get async/await functions?
You can leverage https://github.com/amphp/parallel or https://github.com/spatie/async without changing the app much.
-
Handling big API request (2.5gb) without timeout
To handle this problem i've used "https://github.com/halaxa/json-machine" to decrease the memory usage and "https://github.com/spatie/async" to decrease the take taken for the "update process" to complete
-
I Avoid Async/Await
It drove me crazy too, until I needed to use Puppeteer which requires you to write async/await (there are Puppeteer implementations in other languages, but they all seem to make compromises I didn't want). Generally speaking, async/await allows you to write code that looks and feels serial. Perhaps try using one of the async libraries for PHP to wrap your mind around the concept of async/await (like https://github.com/spatie/async)
-
Speeding up SSL checking process
Try using spatie's async package and run a chunk of 10 tests in each batch, if that works it might cut your waiting time by quite a lot.
-
Differences among Asynchronous PHP libraries: ReactPHP | amphp | Parallel (pThreads) | Swoole | Fibers | Spatie
Spatie
- What is best and easiest library (packagist) for async process in PHP?
- A pattern for promises in Laravel?
boxed
- Boxed: Functional Types and Utilities for TypeScript
-
The gotcha of unhandled promise rejections
I was happy when Promise became available, but in retrospect I'd wish we would have skipped ahead and gotten Observable (e.g: https://rxjs.dev/) instead to enable more powerful functionality and composition etc.
In Typescript dealing with rejection is also painful since rejection reasons can't be guaranteed to be Error even when you always take care of that. And it can't help you guarantee that you're handling all types of errors thrown. For that purpose I'm thinking of using https://github.com/supermacro/neverthrow#readme or https://swan-io.github.io/boxed.
- Boxed: Functional utility types and functions for TypeScript
-
I Avoid Async/Await
Agree that try/catch is verbose and not terribly ergonomic, but my solution has been to treat errors as values rather than exceptions, by default. It's much less painful to achieve this if you use a library with an implementation of a Result type, which I admin is a bit of a painful workaround, but worth it. I've recently been using: https://github.com/swan-io/boxed.
By far the greatest benefit is being able to sanely implement a type-safe API. To me, it is utter madness throwing custom extensions of the Error class arbitrarily deep in the call-stack, and then having a catch handler somewhere up the top hoping that each error case is matched and correctly translated to the intended http response (at least this seems to be a common alternative).
- Boxed: Utility Types for Functional TypeScript
What are some alternatives?
async-php-8-io-http - True asynchronous PHP I/O and HTTP without frameworks, extensions, or annoying code. Uses PHP Fibers introduced in PHP 8.1
neverthrow - Type-Safe Errors for JS & TypeScript
fork - A lightweight solution for running code concurrently in PHP
cofx - A node and javascript library that helps developers describe side-effects as data in a declarative, flexible API.
Swoole - 🚀 Coroutine-based concurrency library for PHP
rescript-compiler - The compiler for ReScript.
parallel - An advanced parallelization library for PHP, enabling efficient multitasking, optimizing resource use, and application responsiveness through multiple CPU threads.
variant - Variant types in TypeScript
React - Event-driven, non-blocking I/O with PHP.
async - Async utilities for node and the browser
coroutine - Cooperative multitasking using generators. The basics of coroutines, async and await!
htmx - </> htmx - high power tools for HTML