All Projects → gongzhang → procbridge

gongzhang / procbridge

Licence: MIT license
A super-lightweight IPC (Inter-Process Communication) protocol over TCP socket.

Projects that are alternatives of or similar to procbridge

Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (+11.86%)
Mutual labels:  socket, ipc, protocol
tcp-multiplexer
A TCP service multiplexer in Python
Stars: ✭ 32 (-72.88%)
Mutual labels:  socket, protocol
AndroidNetworkProgramming
Android网络编程实战总结,涉及HTTP、TCP、UDP常用协议。
Stars: ✭ 34 (-71.19%)
Mutual labels:  socket, ipc
Veza
IPC/TCP Networking Utility to connect several processes with great concurrency.
Stars: ✭ 45 (-61.86%)
Mutual labels:  socket, ipc
How-to-Deconstruct-Ping-with-C-and-NodeJS
🙈 Simple examples that show how to work with binary headers in C and NodeJS
Stars: ✭ 51 (-56.78%)
Mutual labels:  socket, protocol
xmpp-php
PHP client library for XMPP (Jabber) protocol
Stars: ✭ 33 (-72.03%)
Mutual labels:  socket, protocol
Kcp
⚡ KCP - A Fast and Reliable ARQ Protocol
Stars: ✭ 10,473 (+8775.42%)
Mutual labels:  socket, protocol
socket
Dazzle Async Socket
Stars: ✭ 19 (-83.9%)
Mutual labels:  socket, ipc
Kalm.js
The socket manager
Stars: ✭ 155 (+31.36%)
Mutual labels:  socket, ipc
Jocket
Low-latency java socket implementation (using shared memory)
Stars: ✭ 83 (-29.66%)
Mutual labels:  socket, ipc
sirdez
Glorious Binary Serialization and Deserialization for TypeScript.
Stars: ✭ 20 (-83.05%)
Mutual labels:  ipc, protocol
Ohsce
PHP HI-REL SOCKET TCP/UDP/ICMP/Serial .高可靠性PHP通信&控制框架SOCKET-TCP/UDP/ICMP/硬件Serial-RS232/RS422/RS485 AND MORE!
Stars: ✭ 206 (+74.58%)
Mutual labels:  socket, ipc
metacom
RPC communication protocol for Metarhia stack 🔌
Stars: ✭ 42 (-64.41%)
Mutual labels:  ipc, protocol
GenericProtocol
⚡️ A fast TCP event based buffered server/client protocol for transferring data over the (inter)net in .NET 🌐
Stars: ✭ 38 (-67.8%)
Mutual labels:  socket, protocol
Pandatvdanmu
Panda TV 弹幕助手 ( 熊猫TV 弹幕助手) (JAVA)
Stars: ✭ 65 (-44.92%)
Mutual labels:  socket, protocol
Erpc
An efficient, extensible and easy-to-use RPC framework.
Stars: ✭ 2,274 (+1827.12%)
Mutual labels:  socket, protocol
Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (+83.05%)
Mutual labels:  socket, protocol
Delphi Cross Socket
Delphi cross platform socket library
Stars: ✭ 250 (+111.86%)
Mutual labels:  socket
CentrifugoBundle
📦 Provides communication with web-socket server Centrifugo in Symfony applications.
Stars: ✭ 65 (-44.92%)
Mutual labels:  socket
Sockpp
Modern C++ socket library.
Stars: ✭ 246 (+108.47%)
Mutual labels:  socket

1. Introduction

ProcBridge is a super-lightweight IPC (Inter-Process Communication) protocol over TCP socket. It enables you to send and recieve JSON between processes easily. ProcBridge is much like a simplified version of HTTP protocol, but only transfer JSON values.

On the server side, you define a function which handles requests and returns result. On the client side, you just make request and get results synchronously. Both requests and responses are wildcard JSON values (null, boolean, number, string, object, and array).

ProcBridge has been implemented in Java, Python, Node.js, Swift, and C#. If you want to connect two processes and HTTP & RPC are too heavy for your scenario, then ProcBridge will be an ideal choice.

2. Instructions & Example

Please go to sub-repos for more information.

3. Protocol Design

Both request and response are encoded into ProcBridge Packets. Those binary packets are sent over TCP socket directly. Talk is cheap, please read Python implementation to fully understand the protocol design.

4. Collaboration

👀 Note for Early Collaborators (2019-01-10)

The library implementations have been refactored and migrated to sub-repos as described above. From now on, this repo only stores docs. If you worked on master branch before, please switch to legacy branch. Thank you for your understanding and support. 😼


Below is the collaboration guideline:

Extend the protocol

If you want to extend the protocol, for example:

  • support packet compression
  • support bidirectional communication
  • support long connection and event-based communication
  • define conventions to method name or JSON body

Please open an issue first.

Implement the protocol

You can quickly implement ProcBridge in any other programming languages. Note that it only takes 300 lines of code to fully implement the protocol in Python. Please name your repo like procbridge-xxx where xxx is your programming language. Don't forget to open an issue to let me know it.

Improve existing implementation

Cool. Please open PR in sub-repos.

5. Contacts

👨🏻‍💻 Gong Zhang ([email protected])

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].