spiral/goridge

高性能PHP到Golang RPC桥接器

支持包维护!
roadrunner-server

安装数: 5,884,768

依赖者: 30

建议者: 0

安全: 0

星标: 95

关注者: 12

分支: 11

类型:goridge

v4.2.0 2024-04-11 17:26 UTC

README

高性能PHP到Golang IPC桥接器

Latest Stable Version CI Codecov Chat

PHPClasses Innovation Award

Goridge是一个高性能的PHP到Golang编解码库,它通过原生的PHP套接字和Golang的net/rpc包工作。这个库允许您以最小的占用调用Go服务方法,支持结构和[]byte
在以下仓库可以找到Golang源代码:goridge


请参阅 https://github.com/spiral/roadrunner - 使用Golang编写的性能高的PHP应用服务器、负载均衡器和进程管理器

特性

  • 无外部依赖或服务,直接使用(需要64位PHP版本)
  • TCP或Unix套接字(需要ext-sockets),标准管道
  • 非常快(在Ryzen 1700X上,20个线程每秒可达300k个调用)
  • 原生net/rpc集成,可以连接到现有应用程序
  • 独立协议使用
  • 使用json或msgpack进行结构化数据传输
  • []byte传输,包括大数据包
  • 服务、消息和传输级别错误处理
  • 可定制
  • 在Windows上运行
  • Unix套接字支持(也在Windows上)

安装

composer require spiral/goridge

示例

<?php

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

$rpc = new Goridge\RPC\RPC(
    Goridge\Relay::create('tcp://127.0.0.1:6001')
);

//or, using factory:
$tcpRPC = new Goridge\RPC\RPC(Goridge\Relay::create('tcp://127.0.0.1:6001'));
$unixRPC = new Goridge\RPC\RPC(Goridge\Relay::create('unix:///tmp/rpc.sock'));
$streamRPC = new Goridge\RPC\RPC(Goridge\Relay::create('pipes://stdin:stdout'));

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

工厂应用以下格式:<protocol>://<arg1>:<arg2>

更多示例可以在此目录中找到。

许可证

MIT许可证(MIT)。更多信息请参阅LICENSE