php / php/php-src

[RFC] True native async implementations

Open
#22,197 16 comments 24 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature Status: Requires RFC
Dominant language
C
Stars
40.4k
Forks
8.1k
Avg merge
2d 13h
Merged PRs (30d)
96

Description

Highlights

🏅 Top 1 performance in synthetic benchmark
30,000% faster latency in Laravel

RFC: https://wiki.php.net/rfc/true_async
Source: https://github.com/true-async/php-src/tree/true-async-stable

True Async Author: @EdmondDantes

Interests

There is also quite a bit of interest in true async as the exchanges here https://externals.io/message/129690#129944 and here https://github.com/orgs/true-async/discussions/9

Description

It was demonstrated that PHP-based framework can beat many frameworks with async, see here:

Image

https://www.http-arena.com/leaderboard/#v=composite&res=mem

It should be noted in the past, during techempower benchmark, actix is among the top contenders in web performance, but in httparena, php async framework scored higher with async/coroutine. While php is not entirely a framework, native async/coroutine is a promising potential

In other works, it also demonstrated massive performance improvement in average latency in Laravel from 4000 ms to 13ms for the same workload.

Image
Misconceptions
  • Myth 1

    Myth: Native async will mess up ALL of existing synchronous PHP code and projects globally!

    Truth: Actually no, you have to explicitly define a function/class/namespace to have an async property, otherwise all synchronous codes and projects will happily run as usual as if there is no native async.

  • Myth 2

    Myth: Great, now I have to think async when coding new project

    Truth: Actually no, just DON'T define your functions/class/namespace as async then you will be happy with your old php self

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked PHP RFC and the true-async-stable source branch, then review the referenced discussions and benchmark context. The issue does not define specific files, tests, implementation boundaries, or acceptance criteria, so completion would require an agreed design and scope first.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, php
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.