Popularity
6.2
Declining
Activity
0.0
Stable
360
27
35

Programming language: Rust
Tags: Concurrency    

coroutine-rs alternatives and similar packages

Based on the "Concurrency" category

Do you think we are missing an alternative of coroutine-rs or a related project?

Add another 'Concurrency' Package

README

coroutine-rs

Build Status crates.io crates.io

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)