Skip to content

Commit 768e58f

Browse files
authored
Merge pull request #82 from SuperWangKai/master
Added English translation for README.md.
2 parents f2f1af8 + 1fca15f commit 768e58f

File tree

1 file changed

+54
-16
lines changed

1 file changed

+54
-16
lines changed

README.md

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
1-
# cpp-ipc(libipc) - C++ IPC Library
1+
# cpp-ipc (libipc) - C++ IPC Library
22

3-
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mutouyun/cpp-ipc/blob/master/LICENSE)
3+
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mutouyun/cpp-ipc/blob/master/LICENSE)
44
[![Build Status](https://github.com/mutouyun/cpp-ipc/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/mutouyun/cpp-ipc/actions)
55
[![Build status](https://ci.appveyor.com/api/projects/status/github/mutouyun/cpp-ipc?branch=master&svg=true)](https://ci.appveyor.com/project/mutouyun/cpp-ipc)
66
[![Vcpkg package](https://img.shields.io/badge/Vcpkg-package-blueviolet)](https://github.com/microsoft/vcpkg/tree/master/ports/cpp-ipc)
7-
8-
A high-performance inter-process communication using shared memory on Linux/Windows.
9-
使用共享内存的跨平台(Linux/Windows,x86/x64/ARM)高性能IPC通讯库。
10-
11-
* 推荐支持C++17的编译器(msvc-2017/gcc-7/clang-4)
12-
* 除STL外,无其他依赖
13-
* 无锁(lock-free)或轻量级spin-lock
14-
* 底层数据结构为循环数组(circular array)
15-
* `ipc::route`支持单写多读,`ipc::channel`支持多写多读【**注意:目前同一条通道最多支持32个receiver,sender无限制**
16-
* 默认采用广播模式收发数据,支持用户任意选择读写方案
17-
* 不会长时间忙等(重试一定次数后会使用信号量进行等待),支持超时
18-
* 支持[Vcpkg](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)方式安装,如`vcpkg install cpp-ipc`
19-
7+
8+
## A high-performance inter-process communication library using shared memory on Linux/Windows.
9+
10+
* Compilers with C++17 support are recommended (msvc-2017/gcc-7/clang-4)
11+
* No other dependencies except STL.
12+
* Only lock-free or lightweight spin-lock is used.
13+
* Circular array is used as the underline data structure.
14+
* `ipc::route` supports single read and multiple write. `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.**)
15+
* Broadcasting is used by default, but user can choose any read/ write combinations.
16+
* No long time blind wait. (Semaphore will be used after a certain number of retries.)
17+
* [Vcpkg](https://github.com/microsoft/vcpkg/blob/master/README.md) way of installation is supported. E.g. `vcpkg install cpp-ipc`
18+
2019
## Usage
2120

2221
See: [Uncyclo](https://github.com/mutouyun/cpp-ipc/wiki)
@@ -31,7 +30,7 @@ See: [Uncyclo](https://github.com/mutouyun/cpp-ipc/wiki)
3130
OS | Windows 7 Ultimate x64
3231
Compiler | MSVC 2017 15.9.4
3332

34-
UT & benchmark test function: [test](test)
33+
Unit & benchmark tests: [test](test)
3534
Performance data: [performance.xlsx](performance.xlsx)
3635

3736
## Reference
@@ -41,3 +40,42 @@ Performance data: [performance.xlsx](performance.xlsx)
4140
* [Lock-Free 编程 | 匠心十年 - 博客园](http://www.cnblogs.com/gaochundong/p/lock_free_programming.html)
4241
* [无锁队列的实现 | 酷 壳 - CoolShell](https://coolshell.cn/articles/8239.html)
4342
* [Implementing Condition Variables with Semaphores](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/12/ImplementingCVs.pdf)
43+
44+
------
45+
46+
47+
## 使用共享内存的跨平台(Linux/Windows,x86/x64/ARM)高性能IPC通讯库
48+
49+
* 推荐支持C++17的编译器(msvc-2017/gcc-7/clang-4)
50+
* 除STL外,无其他依赖
51+
* 无锁(lock-free)或轻量级spin-lock
52+
* 底层数据结构为循环数组(circular array)
53+
* `ipc::route`支持单写多读,`ipc::channel`支持多写多读【**注意:目前同一条通道最多支持32个receiver,sender无限制**
54+
* 默认采用广播模式收发数据,支持用户任意选择读写方案
55+
* 不会长时间忙等(重试一定次数后会使用信号量进行等待),支持超时
56+
* 支持[Vcpkg](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)方式安装,如`vcpkg install cpp-ipc`
57+
58+
## 使用方法
59+
60+
详见:[Uncyclo](https://github.com/mutouyun/cpp-ipc/wiki)
61+
62+
## 性能
63+
64+
| 环境 ||
65+
| -------- | -------------------------------- |
66+
| 设备 | 联想 ThinkPad T450 |
67+
| CPU | 英特尔® Core™ i5-4300U @ 2.5 GHz |
68+
| 内存 | 16 GB |
69+
| 操作系统 | Windows 7 Ultimate x64 |
70+
| 编译器 | MSVC 2017 15.9.4 |
71+
72+
单元测试和Benchmark测试: [test](test)
73+
性能数据: [performance.xlsx](performance.xlsx)
74+
75+
## 参考
76+
77+
* [Lock-Free Data Structures | Dr Dobb's](http://www.drdobbs.com/lock-free-data-structures/184401865)
78+
* [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)
79+
* [Lock-Free 编程 | 匠心十年 - 博客园](http://www.cnblogs.com/gaochundong/p/lock_free_programming.html)
80+
* [无锁队列的实现 | 酷 壳 - CoolShell](https://coolshell.cn/articles/8239.html)
81+
* [Implementing Condition Variables with Semaphores](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/12/ImplementingCVs.pdf)

0 commit comments

Comments
 (0)