I’m excited to announce xrdebug 3, a complete rewrite of the project in Go! This version brings significant improvements in performance, usability, and features. Read blog post Hello, xrDebug 3.0 for more details.
Key features
- Go-based architecture: Enjoy faster execution and better scalability.
- Enhanced logging system: The logging mechanism has been refined, offering more detailed insights and improved error handling.
- Updated keys file handling: The new version read keys on files, not inline.
- Extended IDE support: Compatible with more editors now (
atom
,bracket
,emacs
,espresso
,fleet
,idea
,macvim
,netbeans
,nova
,phpstorm
,sublime
,textmate
,vscode
,zed
). - Simplified deployment: A streamlined setup process for smoother installation.
Performance improvements
The new Go-based implementation delivers substantial performance improvements across all metrics:
Metric | Improvement | Details |
---|---|---|
Request handling | 14x faster | From ~5,948 to ~83,104 requests/second |
Latency | 6.5x lower | Average response time reduced from 17ms to 2.7ms |
Transfer rate | 22x higher | Improved from 0.63 MB/s to 14 MB/s |
These benchmarks were conducted under identical conditions. The results demonstrate the significant performance gains achieved with the new version.
Changes
- Legacy PHP version: Moved to a separate repository for special use-cases (Chevereto and others).
- Updated signed algorithm: The previous signature algorithm (based on PHP serialize) has been replaced with a more universal approach. This will make the sign process available for more languages.
- Removed custom working directory: The support for custom working directories has been dropped.
- Removed CLI color support: The color support has been removed, as it was deemed unnecessary for the current version.
- Removed open browser function: The function to automatically open a browser window has been removed.