Give us the project's elevator pitch! What does it do? What are its aims/goals? How will being part of the Rust Innovation Lab help achieve that?
ext-php-rs lets you write PHP extensions in Rust instead of C.
You annotate a Rust function or struct with #[php_function] or #[php_class], and the crate handles the Zend engine glue.
cargo php builds, installs, and generates IDE stubs for the result.
The same source compiles against PHP 8.1 through 8.5, thread-safe or not, on Linux, macOS and Windows, and since this month it can be linked statically into php-src itself.
The crate has 644k downloads on crates.io (271k in the last 90 days) and 44 contributors since 2021. It's how PHP gets bindings for Apache OpenDAL and Apache Iggy, the official Turso and Aerospike PHP clients, Proton Mail's iCalendar parser, Appwrite's scrypt extension, Paragon Initiative's post-quantum crypto wrapper, and Platformatic's php-node, which embeds PHP in Node.js. The full list is at https://github.com/extphprs/awesome-ext-php-rs.
Aims
Make writing a PHP extension as routine as writing any other Rust crate. Concretely:
- Expose only safe wrappers.
- Track PHP releases on day one: we build and test against every supported PHP version, ZTS and NTS, in CI, and drop versions when php.net drops security support.
- Keep the FFI cost near zero.
- Reach a 1.0 with a stable API so extensions written today keep compiling in five years.
How the Rust Innovation Lab helps
The project sits between two communities that don't overlap much. PHP developers don't watch the Rust Foundation, and Rust developers don't write PHP. Neutral institutional backing tells a PHP shop evaluating Rust for their next extension that this isn't one maintainer's side project.
We have a handful of active maintainers and no formal governance. The Foundation's guidance on contributor agreements, decision-making, and trademark (the crate name and the ext-php.rs domain are held by individuals today) would fix that before it becomes a problem.
Fiscal sponsorship would let us accept funding from the companies that already depend on the crate in production and route it to the work that nobody does for free: auditing unsafe code against each new PHP release, the Windows and musl targets, and the 1.0 API review.
Who are the project's key personnel? List their names and contact info (one person per line).
Pierre Tondereau pierre.tondereau@gmail.com
Do you have a governing document?
No
Who is involved in the project?
Pierre Tondereau pierre.tondereau@gmail.com
Xenira
Who is in charge of the project?
Pierre Tondereau pierre.tondereau@gmail.com
What is the process for appointing/removing leadership?
Pierre Tondereau pierre.tondereau@gmail.com
Give an outline description of how leadership runs the project.
Discussion > Issue > PR > Reviews > Merged > Released
What will happen if the project is no longer sustainable and needs to be wound down?
Rust PHP bindings will drop the support and turn back to C
Do you have a Code of Conduct?
Yes
If you have a Code of Conduct, please provide a URL where we can read it.
https://github.com/extphprs/ext-php-rs/blob/master/CODE_OF_CONDUCT.md
What level of project management/support do you envisage your project requiring from the Foundation?
For support mainly, where an enterprise/foundation can help submit sponsorship and visibility
Is your project funded, do you expect it to be funded in the near future, or can you sustain your own funding requirements (even if your funding requirements are $0)?
No
If you have funding already, describe how you currently manage the money. If there is no money to manage because it is not required, say so here and then say "No" to a budget below.
No response
Do you have a budget?
No
Please list and describe any trademarks you already have, and what territories they are trademarked in.
nothing
Please list and describe anything you'd like to trademark in future, and what territories you want to apply for the trademark in.
nothing
What branding assets do you already have, if any?
https://github.com/extphprs/.github/blob/master/profile/assets/ext-php-rs.png
Do you already have a framework for the usage of your trademark(s) and branding asset(s)? Please briefly describe here, and attach any relevant documents.
no
Does your project have a website?
Yes
Does your project have code repositories?
Yes
Does your project have a mailing list?
No
Does your project have forums?
No
Does your project have any chat platforms?
Yes
Does your project have any other collaboration spaces?
No
If you answered "Yes" to any of the above infrastructure questions, please provide URLs and any relevant access information here.
https://ext-php.rs/
https://github.com/extphprs
https://discord.com/channels/115233111977099271/829877152048349266
Is the project's work made available under an open license?
Yes
If your project is under an open source license, which license(s) is it?
MIT, Apache 2.0
Do you operate a Contributor License Agreement (CLA) system?
No
Describe your CLA answer
nothing
Does your project collect or store Personally Identifiable Information (PII)?
No
Collecting PII
No response
Do you have a privacy policy?
No
If you have a Privacy Policy, please provide a URL where we can read it.
No response
Please check the box for each document you provided a URL for, or indicated you will provide to us.
Give us the project's elevator pitch! What does it do? What are its aims/goals? How will being part of the Rust Innovation Lab help achieve that?
ext-php-rs lets you write PHP extensions in Rust instead of C.
You annotate a Rust function or struct with
#[php_function]or#[php_class], and the crate handles the Zend engine glue.cargo phpbuilds, installs, and generates IDE stubs for the result.The same source compiles against PHP 8.1 through 8.5, thread-safe or not, on Linux, macOS and Windows, and since this month it can be linked statically into php-src itself.
The crate has 644k downloads on crates.io (271k in the last 90 days) and 44 contributors since 2021. It's how PHP gets bindings for Apache OpenDAL and Apache Iggy, the official Turso and Aerospike PHP clients, Proton Mail's iCalendar parser, Appwrite's scrypt extension, Paragon Initiative's post-quantum crypto wrapper, and Platformatic's php-node, which embeds PHP in Node.js. The full list is at https://github.com/extphprs/awesome-ext-php-rs.
Aims
Make writing a PHP extension as routine as writing any other Rust crate. Concretely:
How the Rust Innovation Lab helps
The project sits between two communities that don't overlap much. PHP developers don't watch the Rust Foundation, and Rust developers don't write PHP. Neutral institutional backing tells a PHP shop evaluating Rust for their next extension that this isn't one maintainer's side project.
We have a handful of active maintainers and no formal governance. The Foundation's guidance on contributor agreements, decision-making, and trademark (the crate name and the ext-php.rs domain are held by individuals today) would fix that before it becomes a problem.
Fiscal sponsorship would let us accept funding from the companies that already depend on the crate in production and route it to the work that nobody does for free: auditing unsafe code against each new PHP release, the Windows and musl targets, and the 1.0 API review.
Who are the project's key personnel? List their names and contact info (one person per line).
Pierre Tondereau pierre.tondereau@gmail.com
Do you have a governing document?
No
Who is involved in the project?
Pierre Tondereau pierre.tondereau@gmail.com
Xenira
Who is in charge of the project?
Pierre Tondereau pierre.tondereau@gmail.com
What is the process for appointing/removing leadership?
Pierre Tondereau pierre.tondereau@gmail.com
Give an outline description of how leadership runs the project.
Discussion > Issue > PR > Reviews > Merged > Released
What will happen if the project is no longer sustainable and needs to be wound down?
Rust PHP bindings will drop the support and turn back to C
Do you have a Code of Conduct?
Yes
If you have a Code of Conduct, please provide a URL where we can read it.
https://github.com/extphprs/ext-php-rs/blob/master/CODE_OF_CONDUCT.md
What level of project management/support do you envisage your project requiring from the Foundation?
For support mainly, where an enterprise/foundation can help submit sponsorship and visibility
Is your project funded, do you expect it to be funded in the near future, or can you sustain your own funding requirements (even if your funding requirements are $0)?
No
If you have funding already, describe how you currently manage the money. If there is no money to manage because it is not required, say so here and then say "No" to a budget below.
No response
Do you have a budget?
No
Please list and describe any trademarks you already have, and what territories they are trademarked in.
nothing
Please list and describe anything you'd like to trademark in future, and what territories you want to apply for the trademark in.
nothing
What branding assets do you already have, if any?
https://github.com/extphprs/.github/blob/master/profile/assets/ext-php-rs.png
Do you already have a framework for the usage of your trademark(s) and branding asset(s)? Please briefly describe here, and attach any relevant documents.
no
Does your project have a website?
Yes
Does your project have code repositories?
Yes
Does your project have a mailing list?
No
Does your project have forums?
No
Does your project have any chat platforms?
Yes
Does your project have any other collaboration spaces?
No
If you answered "Yes" to any of the above infrastructure questions, please provide URLs and any relevant access information here.
https://ext-php.rs/
https://github.com/extphprs
https://discord.com/channels/115233111977099271/829877152048349266
Is the project's work made available under an open license?
Yes
If your project is under an open source license, which license(s) is it?
MIT, Apache 2.0
Do you operate a Contributor License Agreement (CLA) system?
No
Describe your CLA answer
nothing
Does your project collect or store Personally Identifiable Information (PII)?
No
Collecting PII
No response
Do you have a privacy policy?
No
If you have a Privacy Policy, please provide a URL where we can read it.
No response
Please check the box for each document you provided a URL for, or indicated you will provide to us.