/IPC.jl

Inter-Process Communication for Julia

Primary LanguageJuliaOtherNOASSERTION

Inter-Process Communication for Julia

Documentation License Build Status Code Coverage

IPC.jl has been renamed as InterProcessCommunication.jl

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 and condition variables. Package IPC.jl intends to provide such facilities.

Julia IPC.jl 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.

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/IPC.jl.git"))
Pkg.build("IPC")

Optionally, you may test the package:

Pkg.test("IPC")

Later, it is sufficient to do:

Pkg.update("IPC")
Pkg.build("IPC")

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/IPC.jl.git"
... pkg> build IPC
... pkg> test IPC
... pkg> update IPC
... pkg> build IPC