Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://trema.github.io/trema/

Full-Stack OpenFlow Framework in Ruby
https://trema.github.io/trema/

Last synced: about 1 month ago
JSON representation

Full-Stack OpenFlow Framework in Ruby

Awesome Lists containing this project

README

        

Welcome to Trema
================

[![Build Status](https://travis-ci.org/nickkaranatsios/trema.svg?branch=master)](https://travis-ci.org/nickkaranatsios/trema)
[![Code Climate](http://img.shields.io/codeclimate/github/trema/trema.svg?style=flat)][codeclimate]
[![Coverage Status](http://img.shields.io/codeclimate/coverage/github/trema/trema.svg?style=flat)][codeclimate]
[![Dependency Status](http://img.shields.io/gemnasium/trema/trema.svg?style=flat)][gemnasium]

Trema is an OpenFlow controller programming framework that provides
everything needed to create OpenFlow controllers in Ruby. It provides
a high-level OpenFlow library and also a network emulator that can
create OpenFlow-based networks for testing on your PC. This
self-contained environment helps streamlines the entire process of
development and testing.

[travis]: http://travis-ci.org/trema/trema
[codeclimate]: https://codeclimate.com/github/trema/trema
[gemnasium]: https://gemnasium.com/trema/trema
[gitter]: https://gitter.im/trema/trema

Prerequisites
-------------

* Ruby 2.0.0 or higher ([RVM][rvm]).
* [Open vSwitch][openvswitch] (`apt-get install openvswitch-switch`).

[rvm]: https://rvm.io/
[openvswitch]: https://openvswitch.org/

Documentation
-------------

See https://relishapp.com/trema/trema/docs for links to documentation for all APIs.

Sample Code
-----------

Study sample code for implementation examples of Trema features. Each
sample code project is executable source example of how to write a
OpenFlow controller using Trema Ruby API.

* [trema/hello_trema](https://github.com/trema/hello_trema)
* [trema/repeater_hub](https://github.com/trema/repeater_hub)
* [trema/patch_panel](https://github.com/trema/patch_panel)
* [trema/cbench](https://github.com/trema/cbench)
* [trema/learning_switch](https://github.com/trema/learning_switch)
* [trema/switch_monitor](https://github.com/trema/switch_monitor)
* [trema/simple_router](https://github.com/trema/simple_router)
* [trema/topology](https://github.com/trema/topology)
* [trema/routing_switch](https://github.com/trema/routing_switch)

Contributors
------------

Special thanks to all contributors for submitting patches. A full list
of contributors including their patches can be found at:

https://github.com/trema/trema/contributors

License
-------

Trema is released under the GNU General Public License version 2.0 or MIT License:

* http://www.gnu.org/licenses/gpl-2.0.html
* http://www.opensource.org/licenses/MIT