
Description
An automated test run wants five clean VMs spun up after every build and destroyed afterwards; a classroom setup wants thirty preconfigured machines handed out in one action. Shell scripts around VBoxManage can do it, until error handling, state polling and concurrency turn the script into a liability. The VirtualBox SDK moves the whole job into your program — creating VMs, attaching disks, changing adapters, powering on and off, grabbing screenshots, reading performance counters are all API calls that return objects and exceptions rather than text you have to parse.
Oracle ships it free alongside each VirtualBox release. Local management talks to the VBoxSVC service directly over COM on Windows or XPCOM on Linux and macOS; to manage VMs on another host, start vboxwebsrv and use the SOAP interface.
Full VM control interface: the IVirtualBox / IMachine / ISession object model covers everything the GUI does — registering machines, setting CPU and memory, attaching storage controllers and optical media, configuring network modes, taking snapshots, starting and saving state.
Local and remote channels: COM / XPCOM for fast in-process calls on the same host, SOAP via vboxwebsrv for cross-machine and cross-language access.
Language bindings: Java, Python, C and C++ glue layers are all included — install vboxapi and Python can simply import it instead of hand-rolling COM wrappers.
Events and metrics: subscribe to machine state changes, snapshots and adapter changes, and read CPU, memory, disk and network performance counters for monitoring.
Guest execution: with Guest Additions installed, run commands inside a VM, copy files in and out and read guest environment variables without going through a network login.
Bundled documentation: the SDK Programming Guide and Reference documents every interface method, parameter and example, and the samples under sdk/bindings are working starting points.
Oracle ships it free alongside each VirtualBox release. Local management talks to the VBoxSVC service directly over COM on Windows or XPCOM on Linux and macOS; to manage VMs on another host, start vboxwebsrv and use the SOAP interface.
Features
Full VM control interface: the IVirtualBox / IMachine / ISession object model covers everything the GUI does — registering machines, setting CPU and memory, attaching storage controllers and optical media, configuring network modes, taking snapshots, starting and saving state.
Local and remote channels: COM / XPCOM for fast in-process calls on the same host, SOAP via vboxwebsrv for cross-machine and cross-language access.
Language bindings: Java, Python, C and C++ glue layers are all included — install vboxapi and Python can simply import it instead of hand-rolling COM wrappers.
Events and metrics: subscribe to machine state changes, snapshots and adapter changes, and read CPU, memory, disk and network performance counters for monitoring.
Guest execution: with Guest Additions installed, run commands inside a VM, copy files in and out and read guest environment variables without going through a network login.
Bundled documentation: the SDK Programming Guide and Reference documents every interface method, parameter and example, and the samples under sdk/bindings are working starting points.
