1# Mio – Metal IO 2 3Mio is a lightweight I/O library for Rust with a focus on adding as little 4overhead as possible over the OS abstractions. 5 6[![Crates.io][crates-badge]][crates-url] 7[![MIT licensed][mit-badge]][mit-url] 8[![Build Status][azure-badge]][azure-url] 9[![Build Status][cirrus-badge]][cirrus-url] 10 11[crates-badge]: https://img.shields.io/crates/v/mio.svg 12[crates-url]: https://crates.io/crates/mio 13[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg 14[mit-url]: LICENSE 15[azure-badge]: https://dev.azure.com/tokio-rs/Tokio/_apis/build/status/tokio-rs.mio?branchName=master 16[azure-url]: https://dev.azure.com/tokio-rs/Tokio/_build/latest?definitionId=2&branchName=master 17[cirrus-badge]: https://api.cirrus-ci.com/github/carllerche/mio.svg 18[cirrus-url]: https://cirrus-ci.com/github/carllerche/mio 19 20**API documentation** 21 22* [master](https://tokio-rs.github.io/mio/doc/mio/) 23* [v0.6](https://docs.rs/mio/^0.6) 24 25This is a low level library, if you are looking for something easier to get 26started with, see [Tokio](https://tokio.rs). 27 28## Usage 29 30To use `mio`, first add this to your `Cargo.toml`: 31 32```toml 33[dependencies] 34mio = "0.6" 35``` 36 37Then, add this to your crate root: 38 39```rust 40extern crate mio; 41``` 42 43## Features 44 45* Non-blocking TCP, UDP. 46* I/O event notification queue backed by epoll, kqueue, and IOCP. 47* Zero allocations at runtime 48* Platform specific extensions. 49 50## Non-goals 51 52The following are specifically omitted from Mio and are left to the user 53or higher-level libraries. 54 55* File operations 56* Thread pools / multi-threaded event loop 57* Timers 58 59## Platforms 60 61Currently supported platforms: 62 63* Linux 64* OS X 65* Windows 66* FreeBSD 67* NetBSD 68* Solaris 69* Android 70* iOS 71 72There are potentially others. If you find that Mio works on another 73platform, submit a PR to update the list! 74 75## Community 76 77A group of Mio users hang out in the #mio channel on the Mozilla IRC 78server (irc.mozilla.org). This can be a good place to go for questions. 79 80## Contributing 81 82Interested in getting involved? We would love to help you! For simple 83bug fixes, just submit a PR with the fix and we can discuss the fix 84directly in the PR. If the fix is more complex, start with an issue. 85 86If you want to propose an API change, create an issue to start a 87discussion with the community. Also, feel free to talk with us in the 88IRC channel. 89 90Finally, be kind. We support the [Rust Code of Conduct](https://www.rust-lang.org/conduct.html). 91