# Pio Gem Version Build Status Code Climate Coverage Status Dependency Status Gitter Chat Inline docs pio pencil 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: -