Ruyi is an event-driven framework for non-blocking, asynchronous I/O in Rust powered by futures.
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.
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
- One heap based, and another hashed timing-wheel based.Graceful Shutdown
-Gate
can be used to ensure that task completes before event loop ends.
Currently supported:
- Linux 2.6.28+
To be supported:
- Windows 7+
- OS X
- FreeBSD 10.0+
- OpenBSD 5.7+
- NetBSD 8.0+
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.