• Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
  • License
    MIT License
  • Created almost 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A super-lightweight IPC (Inter-Process Communication) protocol over TCP 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])

More Repositories

1

julia-set-playground

A Swift playground that generates beautiful Julia set fractal images.
Swift
262
star
2

you-dont-know-js-epub

"You Don't Know JS Yet" (2nd Edition) ePub generator.
Shell
190
star
3

fft2d-swift-playground

A Swift playground for 2D Image FFT (Fast Fourier Transformation) implementation.
Swift
37
star
4

procbridge-python

A super-lightweight IPC (Inter-Process Communication) protocol over TCP socket.
Python
24
star
5

swift-complex-number

An elegant complex number library for Swift. (You can do "i ^ 2 == -1")
Swift
14
star
6

GZMatchedTransformEffect

Create a 🧈 smooth transition between any two SwiftUI Views.
Swift
14
star
7

HiCoffeeApp

13
star
8

swift-fourier-expansion

A Swift playground that demonstrates the Fourier series expansion.
Swift
11
star
9

procbridge-java

A super-lightweight IPC (Inter-Process Communication) protocol over TCP socket.
Java
8
star
10

swift-event-dispatch

An extremely convenience Swift class that used to implement callbacks, property observing, event publish-subscribe, and MVC/MVP/MVVM patterns. It's also a replacement for KVO.
Swift
5
star
11

procbridge-nodejs

A super-lightweight IPC (Inter-Process Communication) protocol over TCP socket.
JavaScript
3
star
12

service-kit

A group of utility classes for developing Java CLI tools and services.
Java
2
star
13

vue-cli-docker

Docker image for Vue CLI 3
Dockerfile
2
star
14

ifs-fractal-playground

A Swift playground that demonstrates Iterated function systems (IFS) fractals.
Swift
2
star
15

swiftui-availability-check-crash

FB9816443
Swift
2
star
16

awesome-icloud-503

Help 🍎 Apple track and resolve the issue about ☁️ iCloud 503 service unavailable error.
2
star
17

conways-game-of-life

Conway's Game of Life in Xcode Playground
Swift
2
star
18

jdat

Java Dependency Analysis Toolkit
Java
1
star
19

snowberry

Integration of design patterns Eclipse plug-in
Java
1
star
20

snell-docker

Docker image for surge-networks/snell proxy service.
Dockerfile
1
star
21

procbridge-swift

A modern Swift implementation of ProcBridge
Swift
1
star
22

reverse-proxy

Simple Nginx HTTP Reverse Proxy
Dockerfile
1
star
23

album-splitter

Split single audio file into separate tracks.
Shell
1
star