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