coroutine-rs alternatives and similar packages
Based on the "Concurrency" category.
Alternatively, view coroutine-rs alternatives based on common mentions on social networks and blogs.
-
libfringe
a Rust library implementing safe, lightweight context switches, without relying on kernel services -
Bus Writer
Single-reader, multi-writer & single-reader, multi-verifier; broadcasts reads to multiple writeable destinations in parallel
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of coroutine-rs or a related project?
README
coroutine-rs
Coroutine library in Rust
[dependencies]
coroutine = "0.8"
Usage
Basic usage of Coroutine
extern crate coroutine;
use std::usize;
use coroutine::asymmetric::Coroutine;
fn main() {
let coro: Coroutine<i32> = Coroutine::spawn(|me,_| {
for num in 0..10 {
me.yield_with(num);
}
usize::MAX
});
for num in coro {
println!("{}", num.unwrap());
}
}
This program will print the following to the console
0
1
2
3
4
5
6
7
8
9
18446744073709551615
For more detail, please run cargo doc --open
.
Goals
[x] Basic single threaded coroutine support
[x] Asymmetric Coroutines
[ ] Symmetric Coroutines
[ ] Thread-safe: can only resume a coroutine in one thread simultaneously
Notes
Basically it supports arm, i686, mips, mipsel and x86_64 platforms, but we have only tested in
- OS X 10.10.*, x86_64, nightly
- ArchLinux, x86_64, nightly
Thanks
- The Rust developers (context switch ASM from libgreen)