spiral / goridge
高性能PHP到Golang RPC桥接器
v4.2.0
2024-04-11 17:26 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-sockets: *
- spiral/roadrunner: ^2023 || ^2024.1
Requires (Dev)
- google/protobuf: ^3.22
- infection/infection: ^0.26.1
- jetbrains/phpstorm-attributes: ^1.0
- phpunit/phpunit: ^10.0
- rybakit/msgpack: ^0.7
- vimeo/psalm: ^5.9
Suggests
- ext-msgpack: MessagePack codec support
- ext-protobuf: Protobuf codec support
- google/protobuf: (^3.0) Protobuf codec support
- rybakit/msgpack: (^0.7) MessagePack codec support
- 4.x-dev
- v4.2.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.x-dev
- v3.2.1
- v3.2.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.1
- v3.0.0
- v3.0.0-beta4
- v3.0.0-beta3
- v3.0.0-beta2
- v3.0.0-beta1
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- 2.4.1
- 2.4.0
- v2.3.3
- v2.3.2
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2024-08-27 08:27:56 UTC
README
高性能PHP到Golang IPC桥接器
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