<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at" -->

---
title: Unicorn Benefits of Rust/Go Tooling in PHP | daily.dev
description: PHP tooling like PHPStan and Rector is too slow for AI coding agents that re-run checks constantly, Tomas Votruba argues. Running multiple agents in parallel...
canonical: https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Unicorn Benefits of Rust/Go Tooling in PHP | daily.dev
og:description: PHP tooling like PHPStan and Rector is too slow for AI coding agents that re-run checks constantly, Tomas Votruba argues. Running multiple agents in parallel...
og:url: https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at
og:image: https://api.daily.dev/og/posts/XNmyQM1aT.png
og:image:alt: Unicorn Benefits of Rust/Go Tooling in PHP
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Unicorn Benefits of Rust/Go Tooling in PHP

**[Tomas Votruba](https://daily.dev/sources/tomasvotruba)** · 8 min read · 0 upvotes · 0 comments

## Summary

PHP tooling like PHPStan and Rector is too slow for AI coding agents that re-run checks constantly, Tomas Votruba argues. Running multiple agents in parallel with PHPStan, Rector, and ECS pushed CPU usage so high his laptop battery life dropped from 3 hours to under 50 minutes. He built 'Reco', a Go tool that implemented about 100 Rector rules in under 1 s, and it completed a task taking 10-15 minutes in current tools in just 30 seconds. He argues PHP tooling should be rewritten in Go or Rust for speed, since full-project static analysis that takes 30-40 seconds with php-parser could run in under 1 second in Go or Rust.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://tomasvotruba.com/blog/unicorn-benefits-rust-go-tooling-in-php>

## Questions this post answers

### Why are PHPStan and Rector so slow when AI coding agents run them repeatedly?

PHPStan and Rector perform full, often uncached, AST parsing and analysis on every run, and when AI agents re-run these tools after every code change in parallel, CPU usage spikes dramatically. One reported case involved an agent running PHPStan, Rector, and ECS in parallel four times, each process requesting 24 cores, totaling 12 heavy processes at once, causing a laptop's battery life to drop from 3 hours to under 50 minutes.

_Developers tuning AI agent workflows around PHP static analysis can track tooling speed debates like this on daily.dev._

### Can PHP static analysis tools be rewritten in Go or Rust for better performance?

Yes, a Go-based PHP parser and rule engine called Reco demonstrated running about 100 Rector rules in under 1 second, compared to 10 to 15 minutes with existing PHP-based Rector and PHPStan at full CPU usage. A full-project family-tree analysis that took 30 to 40 seconds using php-parser ran in under 1 second when reimplemented in Go or Rust.

_Teams weighing a PHP tooling migration to Go or Rust can follow performance comparisons like this on daily.dev._

### Why do newer PHP dev tools require such high minimum PHP versions?

Newer tool versions tend to bump minimum PHP version requirements alongside new features, which blocks adoption on many production codebases still on older PHP versions. Examples include Paratest only supporting PHPUnit 12 while PHPUnit 13 requires PHP 8.4+, and Mago, a Rust-based tool, requiring PHP 8.1+ despite being newer, while Rector and PHPStan still support PHP 7.4+.

_Developers stuck choosing dev tools against their project's PHP version can track compatibility news like this on daily.dev._

## Similar posts on daily.dev

- [Rust/Go Leverage in PHP](https://daily.dev/posts/rust-go-leverage-in-php-10f11d6gc) · Tomas Votruba · 21 upvotes · 1 comments
- [There is NO cache](https://daily.dev/posts/there-is-no-cache-2r2dtwjqr) · Tomas Votruba · 1 upvotes · 0 comments
- [Is PHP a Rusty language?](https://daily.dev/posts/is-php-a-rusty-language--ro9ckv6fd) · Tomas Votruba · 21 upvotes · 3 comments

---

Tags: [#golang](https://daily.dev/tags/golang), [#php](https://daily.dev/tags/php), [#rust](https://daily.dev/tags/rust), [#phpstan](https://daily.dev/tags/phpstan)

[View this post on daily.dev](https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Unicorn Benefits of Rust/Go Tooling in PHP","url":"https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at"},"datePublished":"2026-10-21T16:09:44.584Z","dateModified":"2026-10-21T16:41:00.397Z","description":"PHP tooling like PHPStan and Rector is too slow for AI coding agents that re-run checks constantly, Tomas Votruba argues. Running multiple agents in parallel...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ee297f129494685bba351ef1678aa550?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ee297f129494685bba351ef1678aa550?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Tomas Votruba","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Tomas Votruba","logo":"https://media.daily.dev/image/upload/s--S3GKbTXH--/f_auto/v1723183142/logos/tomasvotruba","url":"https://daily.dev/sources/tomasvotruba"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"golang,php,rust,phpstan","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tomas Votruba","item":"https://daily.dev/sources/tomasvotruba"},{"@type":"ListItem","position":3,"name":"Unicorn Benefits of Rust/Go Tooling in PHP"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/unicorn-benefits-of-rust-go-tooling-in-php-xnmyqm1at#faq","mainEntity":[{"@type":"Question","name":"Why are PHPStan and Rector so slow when AI coding agents run them repeatedly?","acceptedAnswer":{"@type":"Answer","text":"PHPStan and Rector perform full, often uncached, AST parsing and analysis on every run, and when AI agents re-run these tools after every code change in parallel, CPU usage spikes dramatically. One reported case involved an agent running PHPStan, Rector, and ECS in parallel four times, each process requesting 24 cores, totaling 12 heavy processes at once, causing a laptop's battery life to drop from 3 hours to under 50 minutes. Developers tuning AI agent workflows around PHP static analysis can track tooling speed debates like this on daily.dev."}},{"@type":"Question","name":"Can PHP static analysis tools be rewritten in Go or Rust for better performance?","acceptedAnswer":{"@type":"Answer","text":"Yes, a Go-based PHP parser and rule engine called Reco demonstrated running about 100 Rector rules in under 1 second, compared to 10 to 15 minutes with existing PHP-based Rector and PHPStan at full CPU usage. A full-project family-tree analysis that took 30 to 40 seconds using php-parser ran in under 1 second when reimplemented in Go or Rust. Teams weighing a PHP tooling migration to Go or Rust can follow performance comparisons like this on daily.dev."}},{"@type":"Question","name":"Why do newer PHP dev tools require such high minimum PHP versions?","acceptedAnswer":{"@type":"Answer","text":"Newer tool versions tend to bump minimum PHP version requirements alongside new features, which blocks adoption on many production codebases still on older PHP versions. Examples include Paratest only supporting PHPUnit 12 while PHPUnit 13 requires PHP 8.4+, and Mago, a Rust-based tool, requiring PHP 8.1+ despite being newer, while Rector and PHPStan still support PHP 7.4+. Developers stuck choosing dev tools against their project's PHP version can track compatibility news like this on daily.dev."}}]}
```

