# Pio
Pio is a ruby gem to easily parse and generate network packets. It
supports the following packet formats:
- [ICMP](https://relishapp.com/trema/pio/docs/pio-icmp)
- [ARP](https://relishapp.com/trema/pio/docs/pio-arp)
- [LLDP](https://relishapp.com/trema/pio/docs/pio-lldp)
- [DHCP](https://relishapp.com/trema/pio/docs/pio-dhcp)
- [UDP](https://relishapp.com/trema/pio/docs/pio-udp)
- OpenFlow 1.0
- [Hello](https://relishapp.com/trema/pio/docs/open-flow10/pio-hello)
- [Echo Request](https://relishapp.com/trema/pio/docs/open-flow10/pio-echo-request)
- [Echo Reply](https://relishapp.com/trema/pio/docs/open-flow10/pio-echo-reply)
- [Features Request](https://relishapp.com/trema/pio/docs/open-flow10/pio-features-request)
- [Features Reply](https://relishapp.com/trema/pio/docs/open-flow10/pio-features-reply)
- [Packet In](https://relishapp.com/trema/pio/docs/open-flow10/pio-packetin)
- [Packet Out](https://relishapp.com/trema/pio/docs/open-flow10/pio-packetout)
- [Flow Mod](https://relishapp.com/trema/pio/docs/open-flow10/pio-flowmod)
- [Port Status](https://relishapp.com/trema/pio/docs/open-flow10/pio-portstatus)
- [Exact Match](https://relishapp.com/trema/pio/docs/open-flow10/pio-exactmatch)
- OpenFlow 1.3
- [Hello](https://relishapp.com/trema/pio/docs/open-flow13/pio-hello)
- [Echo Request](https://relishapp.com/trema/pio/docs/open-flow13/pio-echo-request)
- [Echo Reply](https://relishapp.com/trema/pio/docs/open-flow13/pio-echo-reply)
- [Features Request](https://relishapp.com/trema/pio/docs/open-flow13/pio-features-request)
- [Features Reply](https://relishapp.com/trema/pio/docs/open-flow13/pio-features-reply)
## Features Overview
- Pure Ruby. No additional dependency on other external tools to
parse/generate packets.
- Multi-Platform. Runs on major operating systems (recent Windows,
Linux, and MacOSX).
- Clean Code. Pio is built on
[BinData](https://github.com/dmendel/bindata)'s declarative binary
format DSL so that it is easy to read and debug by human beings.
## Installation
The simplest way to install Pio is to use [Bundler](http://gembundler.com/).
Add Pio to your `Gemfile`:
```ruby
gem 'pio'
```
and install it by running Bundler:
```bash
bundle
```
## Documents
- [API document generated with YARD](http://rubydoc.info/github/trema/pio/frames/file/README.md)
## Team
- [Yasuhito Takamiya](https://github.com/yasuhito) ([@yasuhito](https://twitter.com/yasuhito))
- [Eishun Kondoh](https://github.com/shun159) ([@Eishun\_Kondoh](https://twitter.com/Eishun_Kondoh))
### Contributors
## Alternatives
- PacketFu:
- Racket:
## License
Pio is released under the GNU General Public License version 3.0:
-