Ruby-IXP

About

Ruby-IXP is an implementation of the 9P2000 protocol designed for use with Window Manager Improved. It is written in pure Ruby to avoid periodical calling of the wmiir command, thus improving performance. There is another full-blown 9P2000 implementation called Rstyx, but it's rather complex and slow.

Performance

A very simple benchmark to compare performance between Ruby-IXP, wmiir and rstyx is supplied. It reads /def/rules 1000 times.

With Ruby-IXP 1.0.2

usersystemtotalreal
ruby_ixp:1.4000000.1400001.5400003.510298
wmiir:0.1000000.3500004.1300006.182895
rstyx:4.7900000.3700005.1600007.069832

Produced on a Pentium-D 2793.213Mhz with Linux-2.6.15-26-386, Ruby-1.8.4 & WMII-3.1

With Ruby-IXP 1.0.0

usersystemtotalreal
ruby_ixp:1.3300000.1300001.4600004.693283
wmiir:0.0900000.2100004.2000007.771343
rstyx:4.2600000.5100004.7700008.248464

Produced on a Pentium-D 2793.213Mhz with Linux-2.6.15-26-386, Ruby-1.8.4 & WMII-3.1

With Ruby-IXP 0.1.0

usersystemtotalreal
ruby_ixp:1.2031250.0859381.2890622.922688
wmiir:0.0781250.7812502.9609385.201023
rstyx:3.2656250.1796883.4453125.127582

Produced on a Pentium-M 1400MHz with FreeBSD-6.1, Ruby-1.8.5 & WMII-3.1

Usage

The supplied WMII class represents an easy-to-use interface. If you need something more sophisticated, read the source of module IXP. Don't be afraid, it's not that complex.

First, add Ruby-IXP to your library path:

$: << '/path/to/ruby-ixp/lib'

Alternatively install Ruby-IXP globally:

cd /path/to/ruby-ixp/
rake install

Then, load the Ruby-IXP library:

require 'ixp'

Finally, set up a connection to a 9P2000 server:

connection = IXP::Client.new(address_of_9P2000_server)

If you use Ruby-IXP for the purpose of controlling the wmii window manager, we recommend using one of the following abstraction layers of Ruby-IXP to write wmiirc scripts intuitively:

Releases

You can download Ruby-IXP releases (available in gem, gzip- and bzip2-compressed tarball formats) from the project download area.

Development

The development sources may be checked out with the following command:

svn co svn://svn.gna.org/svn/rubyixp/trunk ruby-ixp

You may browse the code online at http://svn.gna.org/viewcvs/rubyixp/trunk

Further ideas

Team

Author

Stephan Maka

Maintainer

Robert Corsaro (e-mail)

Contributors

License

Ruby-IXP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Ruby-IXP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Ruby-IXP; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA