#[cfg(all(feature = "vm", target_os = "linux"))]
use mimobox_sdk::{Config, IsolationLevel, Sandbox};
#[cfg(all(feature = "vm", target_os = "linux"))]
use std::collections::HashMap;
#[cfg(all(feature = "vm", target_os = "linux"))]
fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::builder()
.isolation(IsolationLevel::MicroVm)
.allowed_http_domains(["api.github.com"])
.build();
let mut sandbox = Sandbox::with_config(config)?;
let mut headers = HashMap::new();
headers.insert("User-Agent".to_string(), "mimobox-example".to_string());
headers.insert(
"Accept".to_string(),
"application/vnd.github+json".to_string(),
);
let response = sandbox.http_request("GET", "https://api.github.com/zen", headers, None)?;
println!("status: {}", response.status);
println!("body: {}", String::from_utf8_lossy(&response.body));
sandbox.destroy()?;
Ok(())
}
#[cfg(not(all(feature = "vm", target_os = "linux")))]
fn main() {
eprintln!("此示例需要 Linux + mimobox-sdk 的 vm feature。");
}