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-pre1 | 2015年11月4日 |
0.0.4 | 2015年7月4日 |
#651 in 并发
每月77次下载
用于 colerr
165KB
4K SLoC
mioco
代码片段
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的项目
- colerr - 着色stderr;
- mioco-openssl示例
提交PR或在gitter上发链接。
依赖关系
~5MB
~101K SLoC