Skip to content

Instantly share code, notes, and snippets.

@bukka
bukka / php_io_hooks.md
Last active October 7, 2026 15:36
PHP IO Hooks design docs

STF IO hooks: operations, queues and offloading

Status: design, 2026-09-28. This document describes the target architecture for the IO hooks deliverable of the STF streams project: a single integration point in php-src through which any blocking IO wait or IO operation is handed to a provider, the internal and userland APIs around it, how it integrates with existing code in the tree, and how it relates to the other work in flight. Where the io_hooks_poc branch differs from what is described here, the difference is listed in section 11; the sections before it describe the state to reach.

1. Background and related work

php-8.3.35.tar.bz2
SHA256 hash: e279d9ec90d9bcab900d146816e5b11d3e8924b80e2ba36c7d7dae7d71dcbf2d
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCarJgMwAKCRAcB3ncXAqd
5GzuAP9mZMmjgd1j83C9xN+6y02oKxSuxrrO8q/mifVZbaziAQD/RKFXh6zfeKYk
vb1pf5FgFFs6HfxJhl2XF1kcCB9bHQU=
=JxXi
-----END PGP SIGNATURE-----
php-8.3.32.tar.bz2
SHA256 hash: f777ca24661966f94b31f6840cdad437cf30501537db8b872b1b7a1c244b8d02
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCakTXDgAKCRAcB3ncXAqd
5EAiAPwI/N2Ib1e+ZYOegvp+hSLjJqHWVXsAHfT1cmd6V4XkDwD/f4sovwcnvHLn
Ow2MctedqR50Nhm8G+qQv4jse1xk+wE=
=/L9S
-----END PGP SIGNATURE-----
php-8.3.30.tar.bz2
SHA256 hash: 800b7b6ed50b73c8ee7844ee5f2f7cc612faa7875a0aa7c4529e8ed5866a5030
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaWbJsAAKCRAcB3ncXAqd
5FioAPwK1gjqwBbGr5g3y1TikqxgKVWMHCtir1n46yGN2hYvtwD/flOR9EqRejNU
wW4RMkmRwXGsXY28V1DH+NKnDKTEWQ8=
=jkCu
-----END PGP SIGNATURE-----
php-8.3.30RC1.tar.bz2
SHA256 hash: 2e432f7aa06cc8bc966cd63ede1913cf7c9b9c356ba14f1beb3d5725c41acf9a
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaVPEGAAKCRAcB3ncXAqd
5OwXAQDc2qzaJJya2qMBDswhqBMDkd7L2GIzSSulH/LYyjqO6wD/c/sk2/kFLQmq
G5FKS1hbTfs56Qvyh8fthg/LCIph5wU=
=Ojxu
-----END PGP SIGNATURE-----
php-8.3.28.tar.bz2
SHA256 hash: d5b385ee351ec463c85d47eeb53b51156f3483eaf3ff43a7ad5080c2b6d4c557
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaRzw/QAKCRAcB3ncXAqd
5IiFAP96ro6J68/8pft8OL2tHo/iTbg0v++QtjS8YNN8yH1b0AD+MXY3tTKs7/vD
koRji/rH437wew8LMuHn5J1z4h6NVg0=
=OcSt
-----END PGP SIGNATURE-----
php-8.3.28RC1.tar.bz2
SHA256 hash: 8edc0baafb631df086ab626018c0799dc70c920262ffb44af43de949c49f7cd1
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaQoLfQAKCRAcB3ncXAqd
5EGZAQD7VxlZxTtduVn0BzN9H5o/YfO3PRjJf7OiRFX61Tf5xwD/fiH1efuOo5Lo
KZxTsMqy2EAojS+KaT9uHfAItKs1egE=
=HHwe
-----END PGP SIGNATURE-----
php-8.3.26.tar.bz2
SHA256 hash: 721b63d5349f131f5097537b3be6ba6801e2d8e6faba1f1f2ea95b4fd62e7525
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaNLgJgAKCRAcB3ncXAqd
5CKyAP9b7EUruW8E7HltabMey0F535AfTyDq5xeQXQzp1D01swD+O2rMgJGVVJ87
MXoCJnICfUBM156RNO+GJt7IIXYLjAw=
=jahS
-----END PGP SIGNATURE-----
php-8.3.26RC1.tar.bz2
SHA256 hash: 9fd1963008e116ab2da513645381484e61c04c75a432e013b40f6607fb204c17
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaMCXDwAKCRAcB3ncXAqd
5JvwAQC7QF9/giY9KMJALpsB2fAE4DF0v8JgEnQgfHzOMxlO+wD/aygINVfqHfN8
2NKLeTNx1zaOLYOkDPS0dfu8e5QkXA0=
=i1Zp
-----END PGP SIGNATURE-----
php-8.3.24.tar.bz2
SHA256 hash: e4e12da490746924624c91406b60b31967e4d7bdeabbab9e8cb5354884ee9964
PGP signature:
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUCaIjunAAKCRAcB3ncXAqd
5KkBAP49kajV3QmvDG+/v84yifaw2gfMjjrqKW2TOJyeXr2RmQEAhjNvZV+mY8KG
dIpuzsZ/fyXFAZNFeOjWCxcySCzdoQI=
=PWnI
-----END PGP SIGNATURE-----