2022-05-15 19:40:58 +08:00
.github/workflows 调整github ci 2022-02-27 17:14:59 +08:00
3rdparty modify: adjust result so that it adjusts the output based on the type 2022-05-15 18:15:39 +08:00
benchmark add benchmark 2022-05-15 16:38:20 +08:00
demo using 'signal' to quit waiting explicitly 2021-09-21 13:09:59 +08:00
include fix: ‘detail_result’ does not name a type 2022-05-15 19:40:58 +08:00
src modify: adjust result so that it adjusts the output based on the type 2022-05-15 18:15:39 +08:00
test add: [mmap] add interface declarations 2022-05-15 19:35:58 +08:00
.gitignore modify cmakelists options 2021-08-15 13:23:43 +08:00
CMakeLists.txt modify: adjust result so that it adjusts the output based on the type 2022-05-15 18:15:39 +08:00
LICENSE 调整目录结构,隔离include路径,修正tls在win下的问题 2020-09-13 17:29:14 +08:00
README.md 支持Vcpkg方式安装 2021-09-24 12:40:11 +08:00

cpp-ipc(libipc) - C++ IPC Library

MIT licensed Build Status Build status Vcpkg package

A high-performance inter-process communication using shared memory on Linux/Windows.
使用共享内存的跨平台Linux/Windowsx86/x64/ARM高性能IPC通讯库。

  • 推荐支持C++17的编译器msvc-2017/gcc-7/clang-4
  • 除STL外无其他依赖
  • 无锁lock-free或轻量级spin-lock
  • 底层数据结构为循环数组circular array
  • ipc::route支持单写多读,ipc::channel支持多写多读【注意目前同一条通道最多支持32个receiversender无限制
  • 默认采用广播模式收发数据,支持用户任意选择读写方案
  • 不会长时间忙等(重试一定次数后会使用信号量进行等待),支持超时
  • 支持Vcpkg方式安装,如vcpkg install cpp-ipc

Usage

See: Wiki

Performance

Environment Value
Device Lenovo ThinkPad T450
CPU Intel® Core™ i5-4300U @ 2.5 GHz
RAM 16 GB
OS Windows 7 Ultimate x64
Compiler MSVC 2017 15.9.4

UT & benchmark test function: test
Performance data: performance.xlsx

Reference