td_revent

Crates.iotd_revent
lib.rstd_revent
version0.3.2
sourcesrc
created_at2016-03-31 12:38:59.800639
updated_at2022-05-13 12:12:21.996553
descriptionEvent library for Rust, Async IO similar to libevent
homepage
repositoryhttps://github.com/tickbh/td_revent
max_upload_size
id4645
size152,919
问蒙框架服务 (tickbh)

documentation

README

Event - Async IO similar to libevent

Event is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions.

Build Status

Getting started guide Currently a work in progress:

##Usage

To use td_revent, first add this to your Cargo.toml:

[dependencies]
td_revent = "0.3.0"

Then, add this to your crate root:

extern crate td_revent;

Add empty event just do

extern crate td_revent;
use td_revent::EventLoop;

fn main() {
    let mut event_loop = EventLoop::new().unwrap();
    event_loop.run();
}

Add simple timer event just do

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();
}

##Features

Event loop backed by epoll, windows by select. Non-blocking TCP sockets High performance timer system

##Platforms Currently, td_revent only supports Linux and Windows. The goal is to support all platforms that support Rust and the readiness IO model.

Commit count: 92

cargo fmt