Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
OTHER License
This new version of Glommio brings new APIs, performance improvements, stability fixes, and refactoring, making Glommio's APIs more discoverable and closer to the other async crates such as async-std
or Tokio
.
Task<T>::local()
and Local::local()
are removed in favor of the glommio::spawn_*
set of free functions, glommio::executor()
is now the main way to interact with the executor;read_many
now takes a stream as input instead of an iterator;read_many
is now able to limit concurrency based on in-flight IO memory and/or number of in-flight IO requests;read_many
now uses better, system-specific IO coalescing defaults from sysfs
;DmaStreamReader
may now be consumed trivially without copies;GlommioStream
is reimplemented using poll+recv
for faster network IO;liburing
may now be vendored;sysfs
values;spawn_blocking
is now the preferred way to schedule blocking operations;The minimum supported kernel remains 5.8, and we now require at least Rust 1.58.
Andrey Lomakin <[email protected]>
Cody P Schafer <[email protected]>
David Blewett <[email protected]>
Duarte Nunes <[email protected]>
Glauber Costa <[email protected]>
Hippolyte Barraud <[email protected]>
jianghua <[email protected]>
laa <[email protected]>
Matthieu Le brazidec (r3v2d0g) <[email protected]>
Nikolay Kim <[email protected]>
Ruihang Xia <[email protected]>
Seiichi Uchida <[email protected]>
thirstycrow <[email protected]>
trtsl <[email protected]>
Yongsheng Xu <[email protected]>
Thank you to all our contributors!
Published by glommer about 3 years ago
We will still give some time before we call this 1.0, but in this version the alpha wording was removed.
There are no new user visible features in this release. Only bug fixes!
Published by glommer about 3 years ago
The work on buffer reuse unfortunately caused two regressions:
#391 and #396.
This release fixes them
Published by glommer over 3 years ago
I am removing the beta tag from this release, and if all goes well, the next one should reach 1.0. If you have objections let me know
There are three big feature changes in this release:
ImmutableFile
type, that encodes the fact that a file will never change, opening the door for file-level optimizations like metadata caching and request deduplicationread_many
)LocalExecutorPool
Published by glommer over 3 years ago
Unfortunately as noticed by one of our contributors right after the release, ScopedThread is unsound.
We will look for a better alternative, inspired by what crossbeam is doing, but in the mean time the interface is marked as unsafe
.
Published by glommer over 3 years ago
This is the first beta (post-alpha) release of Glommio, and the first to have a Changelog.
The main change is the addition of the ScopedTask
, which allows a user to create a task that is not 'static
, simplifying lifetime management.
The main experimental change is the addition of the LocalExecutorPoolBuilder
, which allow the user to create a group of executors all at once. This is useful in scenarios where the executors are symmetric and can all be generated from the same function.
Other notable changes:
timeout
function that can timeout any task.LocalExecutor
, so you can see which tasks are using CPU the most.Reactor
, so you can see how I/O is being generated, and by each tasks.send_to
function, useful when you want to send one-shot messages.