All Projects → spiral → goridge-php

spiral / goridge-php

Licence: MIT license
PHP Goridge Protocol implementation

Programming Languages

PHP
23972 projects - #3 most used programming language
go
31211 projects - #10 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to goridge-php

Binaryserializer
A declarative serialization framework for controlling formatting of data at the byte and bit level using field bindings, converters, and code.
Stars: ✭ 197 (+271.7%)
Mutual labels:  protocol
O3
Open-source implementation of the Threema protocol in Go.
Stars: ✭ 219 (+313.21%)
Mutual labels:  protocol
Merkletreejs
🌱 Construct Merkle Trees and verify proofs in JavaScript.
Stars: ✭ 238 (+349.06%)
Mutual labels:  protocol
Lego Ble Wireless Protocol Docs
This repository contains information about LEGO Hubs (name, battery level, etc.) and to interact with any sensors and motors connected to it.
Stars: ✭ 205 (+286.79%)
Mutual labels:  protocol
Derosuite
DERO: Secure, Anonymous Blockchain with Smart Contracts. Subscribe to Dero announcements by sending mail to [email protected] with subject: subscribe announcements
Stars: ✭ 216 (+307.55%)
Mutual labels:  protocol
Golden Gate
Framework to connect wearables and other IoT devices to mobile phones, tablets and PCs with an IP-based protocol stack over Bluetooth Low Energy
Stars: ✭ 223 (+320.75%)
Mutual labels:  protocol
Erpc
An efficient, extensible and easy-to-use RPC framework.
Stars: ✭ 2,274 (+4190.57%)
Mutual labels:  protocol
seamless
Seamless is a framework to set up reproducible computations (and visualizations) that respond to changes in cells. Cells contain the input data as well as the source code of the computations, and all cells can be edited interactively.
Stars: ✭ 19 (-64.15%)
Mutual labels:  protocol
Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (+307.55%)
Mutual labels:  protocol
Ttrpc
GRPC for low-memory environments
Stars: ✭ 236 (+345.28%)
Mutual labels:  protocol
Opendnp3
DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java.
Stars: ✭ 212 (+300%)
Mutual labels:  protocol
Framework
0xcert Framework - JavaScript framework for building decentralized applications - build something unique
Stars: ✭ 213 (+301.89%)
Mutual labels:  protocol
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+4833.96%)
Mutual labels:  protocol
Xiaomirobotvacuumprotocol
Attempt to describe the Xiaomi Robot Vacuum Protocol
Stars: ✭ 200 (+277.36%)
Mutual labels:  protocol
Jreactive 8583
Java Client & Server for ISO8583 & Netty
Stars: ✭ 248 (+367.92%)
Mutual labels:  protocol
Hazel Networking
Hazel Networking is a low level networking library for C# providing connection orientated, message based communication via TCP, UDP and RUDP.
Stars: ✭ 194 (+266.04%)
Mutual labels:  protocol
Protocol
Loopring Protocol Smart Contract on Ethereum
Stars: ✭ 220 (+315.09%)
Mutual labels:  protocol
StriderMqtt
A very thin MQTT client
Stars: ✭ 21 (-60.38%)
Mutual labels:  protocol
Opcua Asyncio
OPC UA library for python > 3.6 asyncio
Stars: ✭ 251 (+373.58%)
Mutual labels:  protocol
Keepalived
Keepalived
Stars: ✭ 2,877 (+5328.3%)
Mutual labels:  protocol

High-performance PHP-to-Golang IPC bridge

Latest Stable Version CI Codecov Chat

PHPClasses Innovation Award

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.
Golang source code can be found in this repository: goridge


See https://github.com/spiral/roadrunner - High-performance PHP application server, load-balancer and process manager written in Golang

Features

  • no external dependencies or services, drop-in (64bit PHP version required)
  • 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 or msgpack
  • []byte transfer, including big payloads
  • service, message and transport level error handling
  • hackable
  • works on Windows
  • unix sockets powered (also on Windows)

Installation

composer require spiral/goridge

Example

<?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");

Factory applies the next format: <protocol>://<arg1>:<arg2>

More examples can be found in this directory.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].