5 releases

0.2.3 Mar 2, 2019
0.2.2 Feb 15, 2019
0.2.1 Dec 28, 2018
0.2.0 Nov 30, 2018
0.1.0 Sep 14, 2018

#156 in #non-blocking

MIT license

140KB
2K SLoC

Mio-st - Metal IO, single threaded

Build Status License: MIT Crates.io Docs

This is a fork of mio (v0.6.12, commit 4a716d0b687592368d9e283a6ea63aedb5877fc8), changed to run on a single thread.

Rust version 1.31 or higher is required as mio-st makes use of Rust 2018 edition features.

Differences compared to mio

The main two differences compared to mio are:

  • No multi-threaded support.
  • No Windows support.

The goal of this crate was to reduce the overhead of locks and/or atomic operations, at the cost of not supporting multiple threads. This means the usage of this crates, compared to mio, changes to using a single Poll instance per thread. Where when using mio you might use a single Poll instance for the entire application.

When reworking the code Windows support was removed because the underlying polling technique provided by the OS differs too much from epoll and kqueue. Carl Lerche (@carllerche, the auther of mio) did an amazing job of supporting Windows, but I have no interest in supporting Windows (I simply don't use it).

OS support

The following platforms are supported:

  • Linux (production target), and
  • macOS (development target).

The following platforms should work, as in the code compiles:

  • FreeBSD,
  • NetBSD, and
  • OpenBSD.

Documentation

The API documentation is available on docs.rs.

License

Licensed under the MIT license (LICENSE or https://opensource.org/licenses/MIT).

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.

Dependencies

~215KB