Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Goridge Laravel Package

roadrunner/goridge

Goridge is the high-performance PHP-to-Go communication layer behind RoadRunner. It offers fast binary payload packing and RPC transport over sockets and pipes, letting PHP workers exchange data efficiently with the Go server. Lightweight and battle-tested.

View on GitHub
Deep Wiki
Context7

Goridge is the high-performance binary protocol that powers communication between PHP and Go, serving as the transport layer for RoadRunner. It efficiently packs and unpacks messages with compact frame headers, enabling fast, low-overhead data exchange over sockets and pipes.

  • Binary framing protocol for fast PHP ↔ Go interop
  • Zero-copy-friendly payload encoding with minimal overhead
  • Supports TCP sockets, Unix sockets, and pipes
  • Simple API for reading/writing framed messages
  • Battle-tested as RoadRunner's core transport layer
Frequently asked questions about Goridge
What is roadrunner/goridge and do I need to install it myself?
Goridge is the binary protocol and PHP client that carries RPC messages between PHP workers and the RoadRunner Go application server. It handles message framing (flags, options, length, CRC, payload) and relays over pipes, Unix sockets, or TCP. In a Laravel application it is almost always installed transitively through laravel/octane's RoadRunner driver and the roadrunner-http/roadrunner-worker packages, so you rarely add it to your require block directly.
How do I install roadrunner/goridge with Composer?
Run composer require roadrunner/goridge. The package is framework-agnostic, so there is no service provider to register and no config file to publish. If you only need it for Laravel Octane, let the dependency tree pull it in rather than pinning it yourself, which reduces the chance of a version conflict later.
Does roadrunner/goridge work with Laravel Octane?
Yes. It is the transport that Octane's RoadRunner driver depends on, so installing Octane with the RoadRunner server and starting it is all that is required. Your application code normally never calls Goridge APIs directly in that setup, which is why direct pins are usually unnecessary.
What changed in roadrunner/goridge 4.5.0 and the rename from spiral/goridge?
Version 4.5.0 is a package-identity release: spiral/goridge was renamed to roadrunner/goridge, with README, badges, and installation docs refreshed. No frame-format change, relay API change, new transport, or public class deprecation is disclosed in the notes. The wire protocol you depend on is unchanged; what changed is the name you depend on.
Why do I have both spiral/goridge and roadrunner/goridge in my vendor directory?
A split can happen when part of your tree still requires spiral/goridge ^3 transitively while you or another package require roadrunner/goridge ^4. Two copies of a wire-protocol library mean two frame implementations, ambiguous autoload resolution, and confusing tracebacks. Run composer why spiral/goridge and composer why roadrunner/goridge, and verify whether roadrunner/goridge declares replace: spiral/goridge before pinning anything.
Which PHP versions does roadrunner/goridge require?
Historically the v3 line required PHP 8.1 or newer while v2 supported 7.4, but the project has since moved to a 4.x line. Check the actual PHP floor for the exact 4.x constraint you resolve to with composer show roadrunner/goridge instead of carrying older documentation forward. You should also confirm that your RoadRunner Go binary version matches the PHP library you install.
What transports does Goridge support and which one should I use?
Goridge relays work over pipes between the Go server and the PHP worker, over Unix sockets, and over TCP. Pipes are the default and simplest choice for Octane deployments. Unix sockets are fast but depend on filesystem paths and permissions that can drift inside containers, and TCP works but exposes an unauthenticated binary port if misconfigured, so keep it on a private interface.
Can Goridge blocking I/O cause 502 errors or stuck requests in production?
Yes. Because the relay is blocking, a hung read stalls the worker, and from the outside that appears as stuck requests or upstream 502 responses. Set sensible timeouts at the HTTP layer, monitor worker health, and keep the RoadRunner Go server and PHP worker library versions in sync to avoid version skew.
Will security and dependency scanners still cover Goridge after the rename?
Not automatically. Advisory feeds, allowlist entries, SBOM consumers, and composer audit policies keyed to spiral/goridge will silently stop covering the package until every configuration is updated to the new name. This is the most likely way the rename causes an incident even though no line of runtime code changed.
How do I test Laravel code that talks to RoadRunner over Goridge?
Goridge is a transport, so test your handlers and application logic rather than the relay itself, and fake the RPC boundary in unit tests. For integration coverage, run a real RoadRunner server in CI and exercise your workers end to end. Avoid asserting on raw frame bytes, since those belong to the protocol layer rather than your application.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings