91 lines
2.4 KiB
Markdown
91 lines
2.4 KiB
Markdown
|
# Mio – Metal IO
|
|||
|
|
|||
|
Mio is a lightweight I/O library for Rust with a focus on adding as little
|
|||
|
overhead as possible over the OS abstractions.
|
|||
|
|
|||
|
[![Crates.io][crates-badge]][crates-url]
|
|||
|
[![MIT licensed][mit-badge]][mit-url]
|
|||
|
[![Build Status][azure-badge]][azure-url]
|
|||
|
[![Build Status][cirrus-badge]][cirrus-url]
|
|||
|
|
|||
|
[crates-badge]: https://img.shields.io/crates/v/mio.svg
|
|||
|
[crates-url]: https://crates.io/crates/mio
|
|||
|
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
|
|||
|
[mit-url]: LICENSE
|
|||
|
[azure-badge]: https://dev.azure.com/tokio-rs/Tokio/_apis/build/status/tokio-rs.mio?branchName=master
|
|||
|
[azure-url]: https://dev.azure.com/tokio-rs/Tokio/_build/latest?definitionId=2&branchName=master
|
|||
|
[cirrus-badge]: https://api.cirrus-ci.com/github/carllerche/mio.svg
|
|||
|
[cirrus-url]: https://cirrus-ci.com/github/carllerche/mio
|
|||
|
|
|||
|
**API documentation**
|
|||
|
|
|||
|
* [master](https://tokio-rs.github.io/mio/doc/mio/)
|
|||
|
* [v0.6](https://docs.rs/mio/^0.6)
|
|||
|
|
|||
|
This is a low level library, if you are looking for something easier to get
|
|||
|
started with, see [Tokio](https://tokio.rs).
|
|||
|
|
|||
|
## Usage
|
|||
|
|
|||
|
To use `mio`, first add this to your `Cargo.toml`:
|
|||
|
|
|||
|
```toml
|
|||
|
[dependencies]
|
|||
|
mio = "0.6"
|
|||
|
```
|
|||
|
|
|||
|
Then, add this to your crate root:
|
|||
|
|
|||
|
```rust
|
|||
|
extern crate mio;
|
|||
|
```
|
|||
|
|
|||
|
## Features
|
|||
|
|
|||
|
* Non-blocking TCP, UDP.
|
|||
|
* I/O event notification queue backed by epoll, kqueue, and IOCP.
|
|||
|
* Zero allocations at runtime
|
|||
|
* Platform specific extensions.
|
|||
|
|
|||
|
## Non-goals
|
|||
|
|
|||
|
The following are specifically omitted from Mio and are left to the user
|
|||
|
or higher-level libraries.
|
|||
|
|
|||
|
* File operations
|
|||
|
* Thread pools / multi-threaded event loop
|
|||
|
* Timers
|
|||
|
|
|||
|
## Platforms
|
|||
|
|
|||
|
Currently supported platforms:
|
|||
|
|
|||
|
* Linux
|
|||
|
* OS X
|
|||
|
* Windows
|
|||
|
* FreeBSD
|
|||
|
* NetBSD
|
|||
|
* Solaris
|
|||
|
* Android
|
|||
|
* iOS
|
|||
|
|
|||
|
There are potentially others. If you find that Mio works on another
|
|||
|
platform, submit a PR to update the list!
|
|||
|
|
|||
|
## Community
|
|||
|
|
|||
|
A group of Mio users hang out in the #mio channel on the Mozilla IRC
|
|||
|
server (irc.mozilla.org). This can be a good place to go for questions.
|
|||
|
|
|||
|
## Contributing
|
|||
|
|
|||
|
Interested in getting involved? We would love to help you! For simple
|
|||
|
bug fixes, just submit a PR with the fix and we can discuss the fix
|
|||
|
directly in the PR. If the fix is more complex, start with an issue.
|
|||
|
|
|||
|
If you want to propose an API change, create an issue to start a
|
|||
|
discussion with the community. Also, feel free to talk with us in the
|
|||
|
IRC channel.
|
|||
|
|
|||
|
Finally, be kind. We support the [Rust Code of Conduct](https://www.rust-lang.org/conduct.html).
|