Welcome to Trema

Build Status Code Climate Coverage Status Dependency Status

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.


  • Ruby 2.0.0 or higher (RVM).
  • Open vSwitch (apt-get install openvswitch-switch).


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.


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



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