- How do I install Goridge in a Laravel application?
- Install it with composer require roadrunner/goridge for the v4 line on PHP 8.1 or newer; older docs and pins may still use spiral/goridge. Goridge does not register a Laravel service provider, so you create a Relay and RPC client in your own service class or container binding. Then point the relay at your Go peer over TCP, a Unix socket, or a pipe and call methods through RPC::call().
- Does spiral/goridge work with Laravel?
- Yes, but only as a plain Composer library inside a Laravel app, not as a Laravel-native package. There is no service provider, queue driver, or Eloquent integration, so all wiring, configuration, and error handling are yours. It is a fit when your Laravel code needs to call a Go service that already speaks Goridge over net/rpc.
- What is the difference between spiral/goridge and roadrunner/goridge?
- Goridge moved from spiral/goridge to roadrunner/goridge in the 4.5.0 line, reflecting its branding as part of the RoadRunner stack. For existing projects, update the Composer requirement, lockfile, CI caches, private mirrors, and internal docs that reference the old name. Before cutover, verify whether the new package replaces or provides the old one, whether spiral/goridge still receives releases, and whether the PHP namespace changed or only the Composer name.
- Do I need RoadRunner to use Goridge?
- No, RoadRunner is not required to use Goridge, because it supports standalone protocol usage when your Go peer speaks Goridge over net/rpc. RoadRunner makes the relationship more explicit and is the natural context for this package, but you still need a Go service, worker, or sidecar. There is no external daemon that Goridge itself requires.
- What Go-side setup is required to call a Go service from Laravel with Goridge?
- You need a Go service that speaks the Goridge protocol over net/rpc, built with the matching Goridge Go module. Match the PHP and Go codec versions, define a clear payload contract for JSON or msgpack data, and choose TCP, Unix sockets, or pipes. The PHP side stays small: create a Relay, wrap it in RPC, and call the service and method with your payload.
- Which transports does Goridge support and does it require ext-sockets?
- Goridge supports TCP sockets, Unix sockets, and standard pipes, and it works on Windows including Unix sockets. ext-sockets may be required for socket transports depending on your Goridge version, while pipes avoid that extension. No external services or daemons are required by the library itself.
- Can Goridge handle large binary payloads and structured data?
- Yes. Goridge supports structured data through JSON or msgpack and []byte transfer including large payloads. That makes it suitable for binary data, compute results, and high-volume messages where HTTP JSON overhead is undesirable. Always test large payloads and verify the PHP and Go codec versions match, because protocol mismatch can fail at runtime.
- Is Goridge fast enough for high-frequency Laravel-to-Go calls?
- Goridge is designed for high-performance PHP-to-Go IPC and the project cites very high call rates in benchmarks. Your real latency and throughput depend on transport, payload size, Go service implementation, and connection reuse. Benchmark your specific path rather than assuming the headline number applies to your Laravel workload.
- How should I test and deploy Goridge in production?
- Test with an integration environment that runs a real Go net/rpc peer, not only PHP unit tests, and cover error paths plus large payloads. Pin roadrunner/goridge and the Go Goridge module explicitly, then treat major upgrades as planned work because v3 to v4 was breaking. In production, monitor transport errors, connection lifecycle, and protocol-version drift between PHP and Go.
- Is Goridge actively maintained and what are the alternatives?
- Goridge is actively maintained under the roadrunner-php organization, and the rename plus README refresh is a positive maintenance signal, though you should still check commit cadence and issue response. Alternatives include gRPC, HTTP/JSON APIs, message queues, and direct RoadRunner integration. Choose Goridge when you specifically want a lightweight net/rpc codec between Laravel and Go and have Go fluency on the team.