On 14/02/2025 11:22, Edmond Dantes wrote:
Good day, everyone.
I would like to request permission to create an RFC dedicated to the
asynchronous module for PHP.
Although the source code development is still in progress, a
significant part of it has already been written, and the initial tests
are working successfully. Therefore, I could start the documentation
process if you consider this topic relevant and interesting for the
community.
A brief overview of what this RFC will cover:
1. *True* asynchronous support for PHP core functions without
additional "tricks."
2. *Scheduler* and *Reactor* components, providing a C-API for PHP
extensions to enable non-blocking I/O in plugins or core code.
3. *User-Land API* that mirrors the C-API for PHP developers.
4. Basic primitives for concurrent programming, such as *Channel* and
*Iterator*.
5. *Built-in* integration with the *LibUV* library.
The library is based on *Fiber*, extending and enhancing it to provide
PHP developers with a full set of tools for concurrent applications.
Have a great day!
Edmond
Is it really necessary to have all these `Async\launchScheduler();`
calls? Why can't the scheduler always be running, the same as it is in
JavaScript or any other async language? Even (userland) Revolt does not
require the event loop to be manually started.
Cheers,
Bilge