{"id":13694413,"url":"https://github.com/roadrunner-server/goridge","last_synced_at":"2026-03-08T17:01:21.560Z","repository":{"id":37612467,"uuid":"100186420","full_name":"roadrunner-server/goridge","owner":"roadrunner-server","description":"🧙 High-performance PHP-to-Golang IPC/RPC bridge","archived":false,"fork":false,"pushed_at":"2025-04-25T16:31:58.000Z","size":3236,"stargazers_count":1267,"open_issues_count":0,"forks_count":77,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-25T17:45:30.861Z","etag":null,"topics":["golang","golang-ipc-bridge","performance-php","php","pipes","rpc","servercodec","socket","tcp","unix"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roadrunner-server.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"roadrunner-server"}},"created_at":"2017-08-13T15:34:04.000Z","updated_at":"2025-04-25T16:32:02.000Z","dependencies_parsed_at":"2023-02-17T12:10:36.022Z","dependency_job_id":"d329df7c-3bb5-4543-a185-d4db02a7e901","html_url":"https://github.com/roadrunner-server/goridge","commit_stats":{"total_commits":507,"total_committers":18,"mean_commits":"28.166666666666668","dds":0.6568047337278107,"last_synced_commit":"c330d456b3d8982540304cd5febbc37bfff9003a"},"previous_names":["spiral/goridge"],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roadrunner-server%2Fgoridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roadrunner-server%2Fgoridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roadrunner-server%2Fgoridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roadrunner-server%2Fgoridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roadrunner-server","download_url":"https://codeload.github.com/roadrunner-server/goridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254042,"owners_count":22039792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","golang-ipc-bridge","performance-php","php","pipes","rpc","servercodec","socket","tcp","unix"],"created_at":"2024-08-02T17:01:31.410Z","updated_at":"2026-03-08T17:01:21.553Z","avatar_url":"https://github.com/roadrunner-server.png","language":"Go","funding_links":["https://github.com/sponsors/roadrunner-server"],"categories":["Open source library","Go"],"sub_categories":["Interpreter"],"readme":"High-performance PHP-to-Golang IPC bridge\n=================================================\n[![GoDoc](https://godoc.org/github.com/roadrunner-server/goridge/v4?status.svg)](https://godoc.org/github.com/roadrunner-server/goridge/v4)\n![Linux](https://github.com/roadrunner-server/goridge/workflows/Linux/badge.svg)\n![macOS](https://github.com/roadrunner-server/goridge/workflows/MacOS/badge.svg)\n![Windows](https://github.com/roadrunner-server/goridge/workflows/Windows/badge.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spiral/goridge)](https://goreportcard.com/report/github.com/spiral/goridge)\n[![Codecov](https://codecov.io/gh/roadrunner-server/goridge/branch/master/graph/badge.svg)](https://codecov.io/gh/roadrunner-server/goridge/)\n\u003ca href=\"https://discord.gg/TFeEmCs\"\u003e\u003cimg src=\"https://img.shields.io/badge/discord-chat-magenta.svg\"\u003e\u003c/a\u003e\n\n\u003cimg src=\"https://files.phpclasses.org/graphics/phpclasses/innovation-award-logo.png\" height=\"90px\" alt=\"PHPClasses Innovation Award\" align=\"left\"/\u003e\n\nGoridge is high performance PHP-to-Golang codec library which works over native PHP sockets and Golang net/rpc package.\nThe library allows you to call Go service methods from PHP with a minimal footprint, structures and `[]byte` support.  \nPHP source code can be found in this repository: [goridge-php](https://github.com/roadrunner-php/goridge)\n\n\u003cbr/\u003e\nSee https://github.com/roadrunner-server/roadrunner - High-performance PHP application server, load-balancer and process manager written in Golang\n\u003cbr/\u003e\n\nFeatures\n--------\n\n- no external dependencies or services, drop-in (64bit PHP version required)\n- low message footprint (12 bytes over any binary payload), binary error detection\n- CRC32 header verification\n- sockets over TCP or Unix (ext-sockets is required), standard pipes\n- very fast (300k calls per second on Ryzen 1700X over 20 threads)\n- native `net/rpc` integration, ability to connect to existed application(s)\n- standalone protocol usage\n- structured data transfer using json\n- `[]byte` transfer, including big payloads\n- service, message and transport level error handling\n- hackable\n- works on Windows\n- unix sockets powered (also on Windows)\n\nInstallation\n------------\n\n```go\nGO111MODULE=on go get github.com/roadrunner-server/goridge/v4\n```\n\n### Sample of usage\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/rpc\"\n\n\tgoridgeRpc \"github.com/roadrunner-server/goridge/v4/pkg/rpc\"\n)\n\ntype App struct{}\n\nfunc (s *App) Hi(name string, r *string) error {\n\t*r = fmt.Sprintf(\"Hello, %s!\", name)\n\treturn nil\n}\n\nfunc main() {\n\tln, err := net.Listen(\"tcp\", \":6001\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t_ = rpc.Register(new(App))\n\n\tfor {\n\t\tconn, err := ln.Accept()\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\t_ = conn\n\t\tgo rpc.ServeCodec(goridgeRpc.NewCodec(conn))\n\t}\n}\n```\n\nLicense\n-------\n\nThe MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froadrunner-server%2Fgoridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froadrunner-server%2Fgoridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froadrunner-server%2Fgoridge/lists"}