Need help with generator-rs?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Xudong-Huang
142 Stars 13 Forks Other 259 Commits 6 Opened issues

Description

rust stackful generator library

Services available

!
?

Need anything else?

Contributors list

# 101,409
Rust
fibers
green-t...
Go
235 commits
# 430,805
Shell
virtual...
jvm
Racket
1 commit
# 445,716
Vue.js
vuetify
control...
swift5
1 commit
# 280,559
gtk
travis-...
wasi
yield
1 commit
# 30,464
Erlang
dynamic...
rust-la...
SQLite
1 commit
# 123,179
Rust
gzip
deflate
Amazon ...
1 commit
# 38,455
Rust
deoplet...
Neovim
coffees...
1 commit
# 50,893
Rust
D
Shell
Windows
1 commit

Build Status Build status Current Crates.io Version Document

Generator-rs

rust stackfull generator library

[dependencies]
generator = "0.6"

Usage

#[macro_use]
extern crate generator;
use generator::Gn;

fn main() { let g = Gn::new_scoped(|mut s| { let (mut a, mut b) = (0, 1); while b < 200 { std::mem::swap(&mut a, &mut b); b = a + b; s.yield_(b); } done!(); });

for i in g {
    println!("{}", i);
}

}

Output

1
2
3
5
8
13
21
34
55
89
144
233

Goals

  • [x] basic send/yield with message support
  • [x] generator cancel support
  • [x] yield_from support
  • [x] panic inside generator support
  • [x] stack size tune support
  • [x] scoped static type support
  • [x] basic coroutine interface support
  • [x] stable rust support

based on this basic library

  • we can easily port python library based on generator into rust
  • coroutine framework running on multi thread

Notices

  • This crate supports below platforms, welcome to contribute with other arch and platforms

    • x86_64 Linux
    • x86_64 MacOs
    • x86_64 Windows

License

This project is licensed under either of the following, at your option:

  • 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)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.