#thread-per-core #io-uring #async #async-await #linux #rust

glommio

Glommio是一个针对每个核心的crate,它使得Rustaceans在基于每个核心的架构中编写高度并行的异步应用程序变得更加容易

8个版本 (重大更改)

0.9.0 2024年3月25日
0.8.0 2023年1月26日
0.7.0 2022年2月10日
0.6.0 2021年9月14日
0.2.0-alpha2020年11月6日

#130 in 异步

Download history 354/week @ 2024-04-27 407/week @ 2024-05-04 293/week @ 2024-05-11 297/week @ 2024-05-18 369/week @ 2024-05-25 376/week @ 2024-06-01 149/week @ 2024-06-08 292/week @ 2024-06-15 306/week @ 2024-06-22 217/week @ 2024-06-29 202/week @ 2024-07-06 394/week @ 2024-07-13 350/week @ 2024-07-20 327/week @ 2024-07-27 556/week @ 2024-08-03 331/week @ 2024-08-10

1,632 每月下载量
用于 21 个crate(14个直接使用)

Apache-2.0 OR MIT

2MB
49K SLoC

Rust 27K SLoC // 0.0% comments C 21K SLoC // 0.1% comments Shell 178 SLoC // 0.2% comments RPM Specfile 55 SLoC C++ 32 SLoC // 0.1% comments

glommio

crates.io docs.rs license project chat CI

加入我们的Zulip社区!

如果您对Glommio感兴趣,请考虑加入我们的Zulip社区。告诉我们您正在构建的令人兴奋的应用程序,寻求帮助,或者只是与朋友们聊天 😃

什么是Glommio?

Glommio(发音为 glo-mee-jow 或 |glomjəʊ|)是一个基于 io_uring 的 Rust & Linux 协作式每个核心crate。与其他 Rust 异步crate一样,它允许您编写利用 Rust async/await 的异步代码,但与同类产品不同的是,它不会在任何地方使用辅助线程。

如果您熟悉 Rust 异步,使用 Glommio 并不困难。您只需做的是

use glommio::prelude::*;

LocalExecutorBuilder::default().spawn(|| async move {
    /// your async code here
})
.expect("failed to spawn local executor")
.join();

更多详情请参阅我们的文档页面和一篇介绍性文章

支持的Rust版本

Glommio基于最新稳定版构建。最低支持的版本是1.65。当前 Glommio 版本不保证在低于最低支持版本的 Rust 版本上构建。

支持的Linux内核

Glommio需要一个支持 io_uring 的足够新的内核,至少足够运行发现探测。目前的最低版本是5.8。

请注意,Glommio 至少需要 512 KiB 的锁定内存才能使 io_uring 正常工作。您可以按照以下方式增加 memlock 资源限制(rlimit)。

$ vi /etc/security/limits.conf
*    hard    memlock        512
*    soft    memlock        512

请注意,512 KiB 是启动单个执行器所需的最小内存。启动多个执行器可能需要相应地提高限制。

要使新限制生效,您需要重新登录到机器。您可以通过运行以下命令来验证限制是否已更新。

$ ulimit -l
512

贡献

请参阅 贡献指南。

许可证

许可协议如下之一

任选其一。

依赖项

~8.5MB
~166K SLoC