microvm 0.0.1-alpha.1

Lightweight macOS microVM launcher built on Apple's Virtualization.framework
[workspace]
resolver = "3"
members = [
    "crates/microvm-vz",
    ".",
]

[workspace.package]
version = "0.0.1-alpha.1"
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/windsornguyen/microvm"

[workspace.dependencies]
# Virtualization.framework bindings
objc2 = "0.6"
objc2-foundation = { version = "0.3", features = ["NSError", "NSURL", "NSString", "NSArray", "NSFileHandle"] }
dispatch2 = { version = "0.3", features = ["alloc"] }

objc2-virtualization = { version = "0.3", features = [
    "std",
    "VZVirtualMachine",
    "VZVirtualMachineConfiguration",
    "VZLinuxBootLoader",
    "VZGenericPlatformConfiguration",
    "VZDiskImageStorageDeviceAttachment",
    "VZVirtioBlockDeviceConfiguration",
    "VZVirtioNetworkDeviceConfiguration",
    "VZNATNetworkDeviceAttachment",
    "VZVirtioSocketDeviceConfiguration",
    "VZVirtioEntropyDeviceConfiguration",
    "VZVirtioConsoleDeviceSerialPortConfiguration",
    "VZFileHandleSerialPortAttachment",
    "VZNetworkDeviceAttachment",
    "VZNetworkDeviceConfiguration",
    "VZStorageDeviceConfiguration",
    "VZStorageDeviceAttachment",
    "VZSerialPortAttachment",
    "VZSerialPortConfiguration",
    "block2",
    "dispatch2",
] }
block2 = { version = "0.6", features = ["std"] }

# Async runtime
tokio = { version = "1", features = ["rt", "signal", "sync", "time"] }

# CLI
clap = { version = "4", default-features = false, features = ["derive", "error-context", "help", "std", "usage"] }

# Error handling
thiserror = "2"
anyhow = "1"

core-foundation = "0.10"

# Internal crates
microvm-vz = { path = "crates/microvm-vz", version = "0.0.1-alpha.1" }

[package]
name = "microvm"
description = "Lightweight macOS microVM launcher built on Apple's Virtualization.framework"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
readme = "README.md"

[dependencies]
microvm-vz.workspace = true
tokio.workspace = true
core-foundation.workspace = true
anyhow.workspace = true
clap.workspace = true