#channel #queue #fork #buffer #lock-free-queue #porting #ff

sys ff_buffer

ff_buffer的分支,在Rust中提供FastFlow通道

1个不稳定版本

0.1.0 2023年9月30日

#7 in #porting


用于 ppl

MIT 协议

12KB
297

FF Buffer

Luca Rinaldi的FF Buffer的分支。这个分支用于PPL中的基于FastFlow的通道后端。

FF Buffer

正在进行C++ FastFlow无锁队列到Rust的移植。

该库是一个简单的接口,模仿了标准Rust的mpsc队列,并在内部使用FastFlow无界无锁缓冲区的C++实现。

构建

该库依赖于LLVM(更多信息)相当新的跨语言链接时间优化,因此构建过程目前并不简单。

构建过程需要clanglld的LLVM版本与rustc的版本相匹配。我目前使用版本为8.0.0的clang和版本为1.37.0的rustc,两者都使用LLVM 8。完整的兼容性列表请参阅此处的表格。

依赖项

Ubuntu 19在主仓库中包含LLVM 8,因此只需

sudo apt install clang-8 lld-8

在其他Ubuntu/Debian版本中,使用此外部仓库

构建指南

在主目录中下载FastFlow库

cd ~
git clone https://github.com/fastflow/fastflow.git

下载ff_buffer仓库并进入其中

git clone https://github.com/lucarin91/ff_buffer.git
cd ff_buffer

然后,使用cargo可以构建库,运行示例或执行基准测试。

cargo build --release
cargo run --example simple
cargo bench

许可证

MIT许可证

依赖项

~0–1.2MB