13个版本
使用旧的Rust 2015
0.3.2 | 2022年5月13日 |
---|---|
0.2.2 | 2018年4月19日 |
0.2.1 | 2017年12月19日 |
0.2.0 | 2017年10月27日 |
0.1.0 | 2016年3月31日 |
#5 in #libevent
54 每月下载量
用于 2 crates
130KB
3K SLoC
事件 - 类似于libevent的异步I/O
Event是一个针对Rust的轻量级IO库,重点在于尽可能减少对操作系统抽象的额外开销。
入门指南 目前正在进行中
##使用
要使用td_revent,首先将以下内容添加到您的Cargo.toml中
[dependencies]
td_revent = "0.3.0"
然后,将以下内容添加到您的crate根目录中
extern crate td_revent;
添加空事件只需这样做
extern crate td_revent;
use td_revent::EventLoop;
fn main() {
let mut event_loop = EventLoop::new().unwrap();
event_loop.run();
}
添加简单计时器事件只需这样做
extern crate td_revent;
use td_revent::{EventLoop, EventEntry, EventFlags};
use std::ptr;
fn time_callback(ev : &mut EventLoop, fd : u64, _ : EventFlags, data : *mut ()) -> i32 {
println!("fd is {:?}", fd);
//return 0 status ok other will delete the timer
0
}
pub fn main() {
let mut event_loop : EventLoop = EventLoop::new().unwrap();
event_loop.add_timer(EventEntry::new_timer(100, false, Some(time_callback), None));
event_loop.add_timer(EventEntry::new_timer(200, true, Some(time_callback), None));
event_loop.run().unwrap();
}
##特性
基于epoll的事件循环,Windows使用select。非阻塞TCP套接字高性能计时系统
##平台 目前,td_revent仅支持Linux和Windows。目标是支持所有支持Rust和就绪IO模型的平台。
依赖项
~3MB
~62K SLoC