phabel
ext-php-rs
phabel | ext-php-rs | |
---|---|---|
6 | 1 | |
242 | 6 | |
0.8% | - | |
0.0 | 7.1 | |
over 1 year ago | 7 months ago | |
PHP | Rust | |
MIT License | Apache License 2.0 |
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.
phabel
-
PHP-Tokio – Use any async Rust library from PHP
Yeah I'm aware of Rector, there's a funny story here, I actually created https://github.com/phabelio/phabel which does the same thing as Rector, but @ installation time (fully integrated with Composer!): I created because I simply did not know about its existence, or else I would've just used it, instead :)
Rector is a very nice project, but I still haven't gotten around to integrating it into our codebase at work, because it uses phpstan instead of Psalm, and apart from being slower than Psalm, phpstan kept having various issues and crashes while scanning our codebase, unlike Psalm which mostly worked out of the box (I even became maintainer of Psalm, due to the large amount of additional performance improvements I added due to our needs @ work).
-
Can We Develop in PHP 8.1 and Still Output PHP 7.4 Code?
I have found this: https://github.com/phabelio/phabel but it only handles up to PHP 8.0.
- Phabel: Convert PHP8 syntax into lower versions
- Phabel: Convert PHP8 features into lower versions
- Async/await support in PHP with a transpiler
- Phabel PHP transpiler – Write and deploy modern PHP 8 code, today
ext-php-rs
-
PHP-Tokio – Use any async Rust library from PHP
The PHP <-> Rust bindings are provided by https://github.com/Nicelocal/ext-php-rs/ (our fork of https://github.com/davidcole1340/ext-php-rs with a bunch of UX improvements :).
php-tokio's integrates the https://revolt.run event loop with the https://tokio.rs event loop; async functionality is provided by the two event loops, in combination with PHP fibers through revolt's suspension API (I could've directly used the PHP Fiber API to provide coroutine suspension, but it was a tad easier with revolt's suspension API (https://revolt.run/fibers), since it also handles the base case of suspension in the main fiber).
What are some alternatives?
polyfill - PHP polyfills
php-tokio - Use any async Rust library from PHP!
ext-php-rs - Bindings for the Zend API to build PHP extensions natively in Rust.
rector-downgrade-php - Rector downgrade rules for PHP
Psalm - A static analysis tool for finding errors in PHP applications
Composer - Dependency Manager for PHP
php-async - Experimental asynchronous components for PHP
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Enum - PHP 7.1 enum implementation
Guzzle - Guzzle, an extensible PHP HTTP client