tiny-nix-ipc - Minimal Rust wrapper for using sockets as IPC with file descriptor passing

  •        1

A small and convenient Rust library for using (UNIX domain) sockets for simple synchronous IPC.




Related Projects

ipc-channel - A multiprocess drop-in replacement for Rust channels

  •    Rust

ipc-channel is an implementation of the Rust channel API (a form of communicating sequential processes, CSP) over the native OS abstractions. Under the hood, this API uses Mach ports on the Mac and file descriptor passing over Unix sockets on Linux. The serde library is used to serialize values for transport over the wire. Note that both IpcSender<T> and IpcReceiver<T> implement Serialize and Deserialize, so you can send IPC channels over IPC channels freely, just as you can with Rust channels.

node-ipc - Inter Process Communication Module for node supporting Unix sockets, TCP, TLS, and UDP

  •    HTML

a nodejs module for local and remote Inter Process Communication with full support for Linux, Mac and Windows. It also supports all forms of socket communication from low level unix and windows sockets to UDP and secure TLS and TCP sockets. This work is licenced via the DBAD Public Licence.

ecal - eCAL - enhanced Communication Abstraction Layer

  •    C++

The enhanced Communication Abstraction Layer (eCAL) is a middleware that enables scalable, high performance interprocess communication on a single computer node or between different nodes in a computer network. eCAL uses a publish - subscribe pattern to automatically connect different nodes in the network. Visit the eCAL Documentation at 🌐 http://ecal.io for more information.

Hermes - A smart, novel and easy-to-use framework for Android Inter-Process Communication (IPC)

  •    Java

A smart, novel and easy-to-use framework for Android Inter-Process Communication (IPC). Hermes is a smart, novel and easy-to-use framework for Android Inter-Process Communication (IPC). In this framework, you can use IPC even if you do not understand the underneath principle of Android IPC.



Code library that contains utilities for interprocess communication

yarp - YARP - Yet Another Robot Platform

  •    C++

YARP is a library and toolkit for communication and device interfaces, used on everything from humanoids to embedded devices. Regular YARP builds use the ACE library. On Linux and macOS, YARP can be compiled without ACE by adding -DSKIP_ACE=TRUE when running cmake.

i3ipc-python - An improved Python library to control i3wm.

  •    Python

An improved Python library to control i3wm. i3's interprocess communication (or ipc) is the interface i3wm uses to receive commands from client applications such as i3-msg. It also features a publish/subscribe mechanism for notifying interested parties of window manager events.

Tiny C++ Library

  •    C++

The goal is to develop a c++ class library on linux platform. It offers lots of threadsafe c++ classes and functions for common linux programming such as linuxthread, socket, IPC, file lock, time, html template, etc.

dnpipes - Distributed Named Pipes

  •    Go

Distributed Named Pipes (or: dnpipes) are essentially a distributed version of Unix named pipes comparable to, for example, SQS in AWS or the Service Bus in Azure. Conceptually, we're dealing with a bunch of distributed processes (dpN above). These distributed processes may be long-running (such as dp0 or dp5) or batch-oriented ones, for example dp3 or dp6. There are a number of situations where you want these distributed processes to communicate, very similar to what IPC enables you to do on a single machine. Now, dnpipes are a simple mechanism to facilitate IPC between distributed processes. What follows is an interface specification as well as a reference implementation for dnpipes.

Message Broker


A simple pub/sub message broker for IPC communication in .Net. Currently written for the .Net Compact Framework in C# but is portable to the desktop version. The broker relies on "Named Events" for IPC communication and uses a 'push-pull' model to streamline consumption rates.

MMWormhole - Message passing between iOS apps and extensions.

  •    Objective-C

MMWormhole creates a bridge between an iOS or OS X extension and its containing application. The wormhole is meant to be used to pass data or commands back and forth between the two locations. Messages are archived to files which are written to the application's shared App Group. The effect closely resembles interprocess communication between the app and the extension, though true interprocess communication does not exist between extensions and containing apps. The wormhole also supports CFNotificationCenter Darwin Notifications in an effort to support realtime change notifications. When a message is passed to the wormhole, interested parties can listen and be notified of these changes on either side of the wormhole. The effect is nearly instant updates on either side when a message is sent through the wormhole.

libchan - Like Go channels over the network

  •    Go

This provides great flexibility in scaling an application by breaking it down into loosely coupled concurrent services. The same application could be composed of goroutines communicating over in-memory channels; then transition to separate unix processes, each assigned to a processor core, and communicating over high-performance IPC; then to a cluster of machines communicating over authenticated TLS sessions. All along it benefits from the concurrency model which has made Go so popular. Not all transports have the same semantics. In-memory Go channels guarantee exactly-once delivery; TCP, TLS, and the various HTTP socket families do not guarantee delivery. Messages arrive in order but may be arbitrarily delayed or lost. There are no ordering invariants across channels.

HermesEventBus - A library for using EventBus between processes, useful in the IPC or plugin development

  •    Java

HermesEventBus is a library for using EventBus between processes, useful in the IPC or plugin development. It provides the same APIs as EventBus and is easy to use. EventBus is one of the most widely-used libraries which simplifies communication between different components in Android. However, it does not support event posting between processes.

IPC 175x Utilities

  •    Java

IPC 175x Utilities is a collection of software tools to support the IPC 1750 series of supplier declaration standards. These utilities are being developed to help electronics industry supply chain stakeholders implement the IPC 1750 series of standard.

axon - message-oriented socket library for node.js heavily inspired by zeromq

  •    Javascript

Axon is a message-oriented socket library for node.js heavily inspired by zeromq. For a light-weight UDP alternative you may be interested in punt.Backed by node-amp-message you may pass strings, objects, and buffers as arguments.

avsc - Avro for JavaScript :zap:

  •    Javascript

Pure JavaScript implementation of the Avro specification. avsc is compatible with all versions of node.js since 0.11 and major browsers via browserify (see the full compatibility table here). For convenience, you can also find compiled distributions with the releases (but please host your own copy).

Ribbon - IPC library with built in software load balancers

  •    Java

Ribbon is a client side IPC library that is battle-tested in cloud. It provides Load balancing, Fault tolerance, Multiple protocol (HTTP, TCP, UDP), support in an asynchronous and reactive model Caching and batching.


  •    C

The purpose of wxSSL is to allow wxWindows programmers to write SSL programs using socket classes similar to what exists in the current wxWindows. wxSSL will implement the IPC and socket classes over SSL.

immortal - ⭕ A *nix cross-platform (OS agnostic) supervisor

  •    Go

If using FreeBSD or macOS you can install using pkg/ports or homebrew, for other platforms work is in progress, any help for making the port/package for other systems would be appreciated.

Andromeda - Andromeda simplifies local/remote communication for Android modularization

  •    Java

Andromeda provides communication among modules for both local and remote service. Anno:The reason that differentiate local service from remote service is that parameter types in remote service can only be primitive type or custom type that implements Parcelable, while parameter types in local service can be any type such as View and Context.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.