[ABANDONED] Create and modify virtual machines in VirtualBox using pure ruby.
Failed to load latest commit information.
docs Merge in the native interfacing branch. Gem now uses the native inter… Apr 8, 2010
features Removed aruba dep Sep 16, 2010
lib Adding support to Platform calls for FreeBSD Sep 29, 2011
.gitignore Fix function declaration on VBOXXPCOMC causing SEGV on Rubinius Aug 5, 2010
.yardopts Fix docs generation. May 22, 2010
Gemfile Require ffi ~> 0.6.3 Dec 1, 2010
LICENSE MIT License Jan 29, 2010
Rakefile Lion compatibility in Rakefile Jul 21, 2011
Readme.md Abandon project. Check the README. Dec 22, 2011
TODO.md 4.1 beta 3 updates. Jul 16, 2011
virtualbox.gemspec Update gemspec so that when used as a source gem, warnings aren't thr… Jul 2, 2011


This gem is no longer under active development. Please do not use it.

I've decided to stop developing this library since the main user of the library and the purpose it was created (Vagrant) no longer makes use of it. The reasoning behind this is because the win32ole support on Windows is simply painful and doesn't support all the features necessary to fully support the VirtualBox API.

If you're interested in maintaining this gem, please contact me (mitchellh).

VirtualBox Ruby Gem

The VirtualBox ruby gem is a library which allows anyone to control VirtualBox from ruby code! Create, destroy, start, stop, suspend, and resume virtual machines. Also list virtual machines, list hard drives, network devices, etc.

Installation and Requirements

First you need to install VirtualBox which is available for Windows, Linux, and OS X. After installation, install the gem:

sudo gem install virtualbox

The gem uses the native COM interface with VirtualBox provides to communicate with VirtualBox. On Windows, this is globally available. On Linux-based machines, the gem uses Ruby-FFI to talk to a dynamic library. No configuration should be necessary.

Basic Usage

The virtualbox gem is modeled after ActiveRecord. If you've used ActiveRecord, you'll feel very comfortable using the virtualbox gem.

There is a quick getting started guide to get you acquainted with the conventions of the virtualbox gem.

Complete documentation can be found at http://mitchellh.github.com/virtualbox.

Below are some examples:

require 'virtualbox'

vm = VirtualBox::VM.find("my-vm")

# Let's first print out some basic info about the VM
puts "Memory: #{vm.memory_size}"

# Let's modify the memory and name...
vm.memory_size = 360
vm.name = "my-renamed-vm"

# Save it!

Known Issues or Uncompleted Features

VirtualBox has a ton of features! As such, this gem is still not totally complete. You can see the features that are still left to do in the TODO file.

Reporting Bugs or Feature Requests

Please use the issue tracker.


If you'd like to contribute to VirtualBox, the first step to developing is to clone this repo, get bundler if you don't have it already, and do the following:

bundle install --relock

This will run the test suite, which should come back all green! Then you're good to go!

Special Thanks

These folks went above and beyond with contributions to the virtualbox gem, and for that, I have to say "thanks!"