goridge

High-performance PHP-to-Golang IPC bridge

Github星跟蹤圖

High-performance PHP-to-Golang IPC bridge

Latest Stable Version
GoDoc
Build Status
Scrutinizer Code Quality
Go Report Card

Goridge is high performance PHP-to-Golang codec library which works over native PHP sockets and Golang net/rpc package.
The library allows you to call Go service methods from PHP with minimal footprint, structures and []byte support.

Features

  • no external dependencies or services, drop-in (64bit PHP version required)
  • low message footprint (17 bytes over any binary payload), binary error detection
  • sockets over TCP or Unix (ext-sockets is required), standard pipes
  • very fast (300k calls per second on Ryzen 1700X over 20 threads)
  • native net/rpc integration, ability to connect to existed application(s)
  • standalone protocol usage
  • structured data transfer using json
  • []byte transfer, including big payloads
  • service, message and transport level error handling
  • hackable
  • works on Windows

Installation

$ go get "github.com/spiral/goridge"
$ composer require spiral/goridge

Example

<?php
use Spiral\Goridge;
require "vendor/autoload.php";

$rpc = new Goridge\RPC(new Goridge\SocketRelay("127.0.0.1", 6001));

echo $rpc->call("App.Hi", "Antony");
package main

import (
	"fmt"
	"github.com/spiral/goridge"
	"net"
	"net/rpc"
)

type App struct{}

func (s *App) Hi(name string, r *string) error {
	*r = fmt.Sprintf("Hello, %s!", name)
	return nil
}

func main() {
	ln, err := net.Listen("tcp", ":6001")
	if err != nil {
		panic(err)
	}

	rpc.Register(new(App))

	for {
		conn, err := ln.Accept()
		if err != nil {
			continue
		}
		go rpc.ServeCodec(goridge.NewCodec(conn))
	}
}

Check this libraries in order to find suitable socket manager:

License

The MIT License (MIT). Please see LICENSE for more information.

主要指標

概覽
名稱與所有者roadrunner-server/goridge
主編程語言Go
編程語言Go (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2017-08-13 15:34:04
推送於2025-04-25 16:31:58
最后一次提交2025-04-25 18:31:56
發布數75
最新版本名稱v3.8.3 (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數1.3k
關注者數41
派生數77
提交數627
已啟用問題?
問題數0
打開的問題數0
拉請求數93
打開的拉請求數0
關閉的拉請求數23
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?