#async-io #coroutine #mio #async #fiber #fibers

mioco

可扩展的、基于协程的异步IO处理(即MIO协程)

13个版本 (8个重大更新)

使用旧的Rust 2015

0.8.1 2016年8月21日
0.7.0 2016年6月25日
0.4.1 2016年3月20日
0.2.0-pre12015年11月4日
0.0.4 2015年7月4日

#651 in 并发

Download history 37/week @ 2024-02-26 15/week @ 2024-03-04 32/week @ 2024-03-11 18/week @ 2024-03-18 61/week @ 2024-04-01 9/week @ 2024-04-08 14/week @ 2024-04-15 18/week @ 2024-04-22 9/week @ 2024-04-29 9/week @ 2024-05-06 14/week @ 2024-05-13 28/week @ 2024-05-20 13/week @ 2024-05-27 26/week @ 2024-06-03 8/week @ 2024-06-10

每月77次下载
用于 colerr

MPL-2.0 许可证

165KB
4K SLoC

mioco

Travis CI Build Status App Veyor Build Status Gitter Chat
文档

代码片段

    mioco::start(|| -> io::Result<()> {
        let addr = listend_addr();

        let listener = try!(TcpListener::bind(&addr));

        println!("Starting tcp echo server on {:?}", try!(listener.local_addr()));

        loop {
            let mut conn = try!(listener.accept());

            mioco::spawn(move || -> io::Result<()> {
                let mut buf = [0u8; 1024 * 16];
                loop {
                    let size = try!(conn.read(&mut buf));
                    if size == 0 {/* eof */ break; }
                    let _ = try!(conn.write_all(&mut buf[0..size]));
                }

                Ok(())
            });
        }
    }).unwrap().unwrap();

此简单代码扩展性很好。请参阅 基准测试

欢迎贡献者!

mioco 正在寻找贡献者。请参阅 贡献页面 了解详情。

简介

适用于Rust编程语言的基于协程的可扩展、异步IO处理库。

mioco 使用异步事件循环,根据数据可用性在协程(又称绿色线程)之间协同切换。您可以将 mioco 视为 Rust的Node.js 或 Rust 上的 绿色线程(基于 mio

阅读 文档 了解详细信息及功能。

如果您想打招呼或需要帮助,请使用 #mioco gitter.im

要报告错误或请求功能,请使用 GitHub问题

构建与运行

独立

要启动测试echo服务器

cargo run --release --example echo

用于日常工作

make all

在您的项目中

在 Cargo.toml 中

[dependencies]
mioco = "*"

在您的 main.rs

#[macro_use]
extern crate mioco;

使用mioco的项目

提交PR或在gitter上发链接。

依赖关系

~5MB
~101K SLoC