ext-php-rs
phanalist
ext-php-rs | phanalist | |
---|---|---|
4 | 5 | |
531 | 107 | |
- | - | |
9.2 | 9.3 | |
about 2 months ago | 6 days ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
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.
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).
-
OK so whose gonna tell them
Real chads write PHP websites and extend it with Rust
- Bindings for the Zend API to build PHP extensions natively in Rust
- ext-php-rs - Writing PHP extensions in Rust
phanalist
-
Traversing an AST of PHP source code.
Phanalist needs a way to detect when we are in the function's scope with the name tooComplex(). With pattern matching, it is super easy to detect if the statement is either: if,else,etc.. The first statement that I want to match for is class Index{ and from there, we will continue down the tree. If you think the same way as I do you know that I will be using recursion to calculate the cyclomatic complexity. After we have matched the scope of the tooComplex() function.
-
How I made it impossible to write spaghetti code.
In the following paragraph, we will see how phanalist can calculate the cyclomatic complexity of the scope of a method. Before creating Phanalist, I always kept the cyclomatic complexity of the methods I wrote in my mind. And if I see that the complexity is higher than 10. I always try to refactor the method, making it easier to understand.
-
Ask HN: Show me your half baked project
https://github.com/denzyldick/phanalist
I'm trying to write a static analyzer for PHP. It's written in RUST and it's a personal project of mine to learn rust and also make a FAST static analyzer for PHP projects that are big. I started with this project because the current static analyzers in the PHP ecosystem are slow.
It would be nice if there were people that would like to contribute. If you want to learn rust and you have PHP experience you are welcome to help.
- Ask HN: What's your most starred repo?
- A new PHP static analyser(Phanalist)
What are some alternatives?
unixstring - An FFI-friendly null-terminated byte string
php-malware-analysis - Deobfuscation and analysis of PHP malware captured by a WordPress honey pot
ext-php-rs - Bindings for the Zend API to build PHP extensions natively in Rust.
rust-php-ext - Rust library integrated into a PHP extension
tomlrs-php - Rust extension to bring fast TOML parsing to PHP
linux - Linux kernel source tree
php-tokio - Use any async Rust library from PHP!
PyO3 - Rust bindings for the Python interpreter
php-async - Experimental asynchronous components for PHP
phabel - PHP transpiler - Write and deploy modern PHP 8 code, today.
Psalm - A static analysis tool for finding errors in PHP applications