InterProcessCommunication.jl

Inter-process communication for Julia
Author emmt
Popularity
7 Stars
Updated Last
1 Year Ago
Started In
December 2019

Inter-Process Communication for Julia

Documentation License Build Status Code Coverage

Julia has already many methods for inter-process communication (IPC): sockets, semaphores, memory mapped files, etc. You may however want to have Julia interacts with other processes or threads by means of BSD (System V) IPC or POSIX shared memory, semaphores, message queues or mutexes, condition variables and read/write locks. Package InterProcessCommunication.jl (IPC for short) intends to provide such facilities.

The InterProcessCommunication package provides:

  • Two kinds of shared memory objects: named shared memory which are identified by their name and old-style (BSD System V) shared memory segments which are identified by a key.

  • Two kinds of semaphores: named semaphores which are identified by their name and anonymous semaphores which are backed by memory objects (usually shared memory) providing the necessary storage.

  • Management of signals including so called real-time signals.

  • Array-like objects stored in shared memory.

  • Access to POSIX mutexes, condition variables and read/write locks. These objects can optionally be stored in shared memory and shared between processes.

Documentation

The documentation for InterProcessCommunication package is here.

Installation

Installation is not yet fully automated in the spirit of official Julia packages but is rather easy. It is sufficient to:

using Pkg
Pkg.add(PackageSpec(url="https://github.com/emmt/InterProcessCommunication.jl.git"))
Pkg.build("InterProcessCommunication")

Optionally, you may test the package:

Pkg.test("InterProcessCommunication")

Later, it is sufficient to do:

Pkg.update("InterProcessCommunication")
Pkg.build("InterProcessCommunication")

to pull the latest version and rebuild the dependencies.

All these can be done at the prompt of Julia's package manager:

... pkg> add https://github.com/emmt/InterProcessCommunication.jl.git"
... pkg> build InterProcessCommunication
... pkg> test InterProcessCommunication
... pkg> update InterProcessCommunication
... pkg> build InterProcessCommunication

Required Packages

No packages found.

Used By Packages