#non-blocking #io #async-io #event-loop #async

ruyi

An event-driven framework for non-blocking, asynchronous I/O in Rust

7 releases

Uses old Rust 2015

0.1.6 Jul 22, 2017
0.1.5 Jun 13, 2017
0.1.2 May 29, 2017

#1633 in Asynchronous

MIT/Apache

285KB
9K SLoC

Ruyi

Ruyi is an event-driven framework for non-blocking, asynchronous I/O in Rust powered by futures.

crates.io docs.rs Build Status

Usage

To use ruyi, add the following to your Cargo.toml:

[dependencies]
ruyi = "0.1"

and then, add this to your crate:

extern crate ruyi;

Examples can be found in the examples folder in this repository.

Features

  • Share-nothing - One loop per core model is recommended. Use SPSC queue to communicate between cores.
  • Chained-buffer - Reduces/avoids memory copy as much as possible.
  • Timer - Heap based and hashed timing-wheel based.
  • Graceful Shutdown - Gate can be used to ensure that task completes before event loop ends.

Platforms

Currently supported:

  • Linux 2.6.28+

To be supported:

  • Windows 7+
  • OS X
  • FreeBSD 10.0+
  • OpenBSD 5.7+
  • NetBSD 8.0+

License

Ruyi is distributed under the terms of both the MIT License and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Dependencies

~320–540KB