Skip to content

kondratev/rtipc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RTIPC

RTIPC is a zero-copy, wait-free inter-process communication C-library suited for real-time systems.

Features

  • Extremely fast: no data-copying and no syscalls are used for a data transfer.
  • Deterministic: data updates don't affect the runtime of the remote process.
  • Simple: No external dependency
  • Optimized for SMP-systems: data buffers are cacheline aligned to avoid unneeded cache coherence transactions.
  • Support for anonymous and named shared memory
  • Multithreading support: multiple threads can communicate over different channels with each other.

Design

The shared memory is divided into different channels. The core of the library is a single consumer single producer wait-free zero-copy circular message queue, that allows the producer to replace its oldest message with a new one.

Shared Memory Layout

Header
Table
Channels
  • Header: fixed size. Describes the memory layout. Written by the server during initization.
  • Table: Each channel has a table entry. An entry contains the size and offset of the channel buffers. The table is written by the server during initialization.
  • Channels: Each channel has at leas three equally sized data buffers plus the atomic variables for the exchange. For performance reasons  The buffers are cacheline aligned.

About

Real-Time IPC, based on a zero-copy, lock-free triple buffer implementation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 97.6%
  • CMake 2.4%