# Nio Task
Nio Task is a low-level task abstraction designed for building executors. It gives you explicit control over how and when a task is polled and rescheduled.
[](https://crates.io/crates/nio-task)
[](https://docs.rs/nio-task)
[](https://opensource.org/license/apache-2-0)
## Example
Add this to your `Cargo.toml` file:
```toml
[dependencies]
nio-task = "0.1"
```
```rust
use nio_task::{Status, Task};
let metadata = 0;
let future = async {};
};
let (task, join) = Task::new_with(metadata, future, scheduler);
match task.poll() {
Status::Yielded(task) => task.schedule(),
Status::Pending => {}
Status::Complete(_metadata) => {}
}
```