Glommio
Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
Install / Use
/learn @DataDog/GlommioREADME
glommio
Join our Zulip community!
If you are interested in Glommio, consider joining our Zulip community. Tell us about exciting applications you are building, ask for help, or just chat with friends 😃
What is Glommio?
Glommio (pronounced glo-mee-jow or |glomjəʊ|) is a Cooperative Thread-per-Core crate for Rust & Linux based
on io_uring. Like other rust asynchronous crates, it allows one to write asynchronous code that takes advantage of
rust async/await, but unlike its counterparts, it doesn't use helper threads anywhere.
Using Glommio is not hard if you are familiar with rust async. All you have to do is:
use glommio::prelude::*;
LocalExecutorBuilder::default().spawn(|| async move {
/// your async code here
})
.expect("failed to spawn local executor")
.join();
For more details check out our docs page and an introductory article.
Supported Rust Versions
Glommio is built against the latest stable release. The minimum supported version is 1.70. The current Glommio version is not guaranteed to build on Rust versions earlier than the minimum supported version.
Supported Linux kernels
Glommio requires a kernel with a recent enough io_uring support, at least current enough to run discovery probes. The
minimum version at this time is 5.8.
Please also note Glommio requires at least 512 KiB of locked memory for io_uring to work. You can increase the
memlock resource limit (rlimit) as follows:
$ vi /etc/security/limits.conf
* hard memlock 512
* soft memlock 512
Please note that 512 KiB is the minimum needed to spawn a single executor. Spawning multiple executors may require you to raise the limit accordingly.
To make the new limits effective, you need to log in to the machine again. You can verify that the limits are updated by running the following:
$ ulimit -l
512
Contributing
See Contributing.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Related Skills
himalaya
346.4kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
346.4kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
qqbot-channel
346.4kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.1k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
