# The Roadmap
## More Docs, Examples and Tests
Easy as that, every method should be tested and documented.
Every use-case should have an example.
## Adding Features
### `net2` Feature
This is a feature to add the `net2` crate which will let us do cool things
like set the option `SO_REUSEADDR` and similar when making TCP connections.
This is discussed in [vi/rust-websocket#2](https://github.com/vi/rust-websocket/pull/2).
### Add Mio & Tokio (Evented Websocket)
There are a lot of issues that would be solved if this was evented, such as:
- [#88 tokio support](https://github.com/cyderize/rust-websocket/issues/88)
- [#66 Timeout on recv_message](https://github.com/cyderize/rust-websocket/issues/66)
- [#6 one client, one thread?](https://github.com/cyderize/rust-websocket/issues/6)
So maybe we should _just_ add `tokio` support, or maybe `mio` is still used and popular.
### Support Permessage-Deflate
We need this to pass more autobahn tests!
### Buffer Reads and Writes
In the old crate the stream was split up into a reader and writer stream so you could
have both a `BufReader` and a `BufWriter` to buffer your operations to gain some speed.
However is doesn't make sense to split the stream up anymore
(see [#83](https://github.com/cyderize/rust-websocket/issues/83))
meaning that we should buffer reads and writes in some other way.
Some work has begun on this, like [#91](https://github.com/cyderize/rust-websocket/pull/91),
but is this enough? And what about writing?