# MIO - Metal IO
MIO is a lightweight IO library for Rust with a focus on adding as
little overhead as possible over the OS abstractions.
[![Build Status](https://travis-ci.org/carllerche/mio.svg?branch=master)](https://travis-ci.org/carllerche/mio)
- [API documentation](http://carllerche.github.io/mio/mio/index.html)
## Usage
To use `mio`, first add this to your `Cargo.toml`:
```toml
[dependencies.mio]
git = "https://github.com/carllerche/mio"
```
`mio` is on [Crates.io](http://crates.io/crates/mio), but is not often updated.
Then, add this to your crate root:
```rust
extern crate mio;
```
## Features
* Event loop backed by epoll, kqueue.
* Zero allocations at runtime
* Non-blocking TCP, UDP and Unix domain sockets
* High performance timer system
* Thread safe message channel for cross thread communication
__Eventually__
* Signal handling
## 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
* Windows support
## Platforms
Currently, MIO only supports Linux and Darwin. The goal is to support
all platforms that support Rust and the readiness IO model.