# `virtualbox_rs`
is a Rust library for interacting with VirtualBox through its SDK.
This library provides a comprehensive set of bindings to manage VirtualBox VMs, including
creating, deleting, and modifying virtual machines, handling snapshots, and configuring
various VM settings such as network adapters, audio settings, and encryption.
# Features
- Create and manage VirtualBox VMs
- Handle VM snapshots
- Configure VM settings (network, audio, encryption, etc.)
- Support for different VirtualBox API versions (6.1 and 7.0)
!
# Example
```rust
use virtualbox_rs::{Session, VirtualBox};
use virtualbox_rs::enums::SessionType;
fn main() {
let vbox = VirtualBox::init().unwrap();
let mut session = Session::init().unwrap();
let machine = vbox.find_machines("Freebsd_14").unwrap();
machine.lock_machine(&mut session, SessionType::Shared).unwrap();
let machine_mut = session.get_machine().unwrap();
let progress = machine_mut.delete_snapshot_and_all_children("278ef54a-2e75-4aba-b212-551af4c69725").unwrap();
progress.wait_for_completion(-1).unwrap();
}
```
# Supported Platforms
This library has been tested on:
- FreeBSD 14.0
- Ubuntu 24.04
# Note
Not everything has been implemented yet. The library emphasizes providing examples for each method, which should simplify its usage.