{"id":13730880,"url":"https://github.com/mutouyun/cpp-ipc","last_synced_at":"2025-12-16T10:02:01.344Z","repository":{"id":41380809,"uuid":"158312675","full_name":"mutouyun/cpp-ipc","owner":"mutouyun","description":"C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.","archived":false,"fork":false,"pushed_at":"2025-12-12T07:14:43.000Z","size":3485,"stargazers_count":2117,"open_issues_count":64,"forks_count":385,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-12-13T16:57:59.336Z","etag":null,"topics":["cpp","cpp17","ipc","linux","shared-memory","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mutouyun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-20T01:25:57.000Z","updated_at":"2025-12-12T13:38:24.000Z","dependencies_parsed_at":"2023-10-28T04:22:09.638Z","dependency_job_id":"4c16dfdd-d90b-4934-b91e-a839ce9feceb","html_url":"https://github.com/mutouyun/cpp-ipc","commit_stats":{"total_commits":550,"total_committers":6,"mean_commits":91.66666666666667,"dds":"0.11818181818181817","last_synced_commit":"2673453e660c041a2e30b6e740dae113d54ba1cb"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/mutouyun/cpp-ipc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutouyun%2Fcpp-ipc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutouyun%2Fcpp-ipc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutouyun%2Fcpp-ipc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutouyun%2Fcpp-ipc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mutouyun","download_url":"https://codeload.github.com/mutouyun/cpp-ipc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutouyun%2Fcpp-ipc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27762497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp17","ipc","linux","shared-memory","windows"],"created_at":"2024-08-03T02:01:20.802Z","updated_at":"2025-12-16T10:02:01.338Z","avatar_url":"https://github.com/mutouyun.png","language":"C++","readme":"# cpp-ipc (libipc) - C++ IPC Library\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mutouyun/cpp-ipc/blob/master/LICENSE)\n[![Build Status](https://github.com/mutouyun/cpp-ipc/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/mutouyun/cpp-ipc/actions)\n[![CodeCov](https://codecov.io/github/mutouyun/cpp-ipc/graph/badge.svg?token=MNOAOLNELH)](https://codecov.io/github/mutouyun/cpp-ipc)\n[![Build status](https://ci.appveyor.com/api/projects/status/github/mutouyun/cpp-ipc?branch=master\u0026svg=true)](https://ci.appveyor.com/project/mutouyun/cpp-ipc)\n[![Vcpkg package](https://img.shields.io/badge/Vcpkg-package-blueviolet)](https://github.com/microsoft/vcpkg/tree/master/ports/cpp-ipc)\n\n## A high-performance inter-process communication library using shared memory on Linux/Windows/FreeBSD.\n\n * Compilers with C++17 support are recommended (msvc-2017/gcc-7/clang-4)\n * No other dependencies except STL.\n * Only lock-free or lightweight spin-lock is used.\n * Circular array is used as the underline data structure.\n * `ipc::route` supports single write and multiple read. `ipc::channel` supports multiple read and write. (**Note: currently, a channel supports up to 32 receivers, but there is no such a limit for the sender.**) \n * Broadcasting is used by default, but user can choose any read/ write combinations.\n * No long time blind wait. (Semaphore will be used after a certain number of retries.) \n * [Vcpkg](https://github.com/microsoft/vcpkg/blob/master/README.md) way of installation is supported. E.g. `vcpkg install cpp-ipc`\n\n## Usage\n\nSee: [Wiki](https://github.com/mutouyun/cpp-ipc/wiki)\n\n## Performance\n\n Environment | Value\n ------ | ------\n Device | Lenovo ThinkPad T450\n CPU | Intel® Core™ i5-4300U @ 2.5 GHz\n RAM | 16 GB\n OS | Windows 7 Ultimate x64\n Compiler | MSVC 2017 15.9.4\n\nUnit \u0026 benchmark tests: [test](test)  \nPerformance data: [performance.xlsx](performance.xlsx)\n\n## Reference\n\n * [Lock-Free Data Structures | Dr Dobb's](http://www.drdobbs.com/lock-free-data-structures/184401865)\n * [Yet another implementation of a lock-free circular array queue | CodeProject](https://www.codeproject.com/Articles/153898/Yet-another-implementation-of-a-lock-free-circular)\n * [Lock-Free 编程 | 匠心十年 - 博客园](http://www.cnblogs.com/gaochundong/p/lock_free_programming.html)\n * [无锁队列的实现 | 酷 壳 - CoolShell](https://coolshell.cn/articles/8239.html)\n * [Implementing Condition Variables with Semaphores](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/12/ImplementingCVs.pdf)\n\n------\n\n\n## 使用共享内存的跨平台（Linux/Windows/FreeBSD，x86/x64/ARM）高性能IPC通讯库\n\n * 推荐支持C++17的编译器（msvc-2017/gcc-7/clang-4）\n * 除STL外，无其他依赖\n * 无锁（lock-free）或轻量级spin-lock\n * 底层数据结构为循环数组（circular array）\n * `ipc::route`支持单写多读，`ipc::channel`支持多写多读【**注意：目前同一条通道最多支持32个receiver，sender无限制**】\n * 默认采用广播模式收发数据，支持用户任意选择读写方案\n * 不会长时间忙等（重试一定次数后会使用信号量进行等待），支持超时\n * 支持[Vcpkg](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)方式安装，如`vcpkg install cpp-ipc`\n\n## 使用方法\n\n详见：[Wiki](https://github.com/mutouyun/cpp-ipc/wiki)\n\n## 性能\n\n| 环境     | 值                               |\n| -------- | -------------------------------- |\n| 设备     | 联想 ThinkPad T450               |\n| CPU      | 英特尔® Core™ i5-4300U @ 2.5 GHz |\n| 内存     | 16 GB                            |\n| 操作系统 | Windows 7 Ultimate x64           |\n| 编译器   | MSVC 2017 15.9.4                 |\n\n单元测试和Benchmark测试: [test](test)  \n性能数据: [performance.xlsx](performance.xlsx)\n\n## 参考\n\n * [Lock-Free Data Structures | Dr Dobb's](http://www.drdobbs.com/lock-free-data-structures/184401865)\n * [Yet another implementation of a lock-free circular array queue | CodeProject](https://www.codeproject.com/Articles/153898/Yet-another-implementation-of-a-lock-free-circular)\n * [Lock-Free 编程 | 匠心十年 - 博客园](http://www.cnblogs.com/gaochundong/p/lock_free_programming.html)\n * [无锁队列的实现 | 酷 壳 - CoolShell](https://coolshell.cn/articles/8239.html)\n * [Implementing Condition Variables with Semaphores](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/12/ImplementingCVs.pdf)\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutouyun%2Fcpp-ipc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmutouyun%2Fcpp-ipc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutouyun%2Fcpp-ipc/lists"}