This document outlines the official structure of the MonsterVM project—a modern, performance-focused virtualization engine.
monstervm/
├── Cargo.toml # Project metadata and dependencies
├── README.md # Documentation and usage instructions
├── build.rs # Build script for assembly components
│
├── src/
│ ├── main.rs # CLI entry point and argument parsing
│
│ ├── cli/ # Command-line interface implementation
│ │ ├── mod.rs # Module exports
│ │ ├── commands.rs # CLI commands (create, start, stop, etc.)
│ │ ├── console.rs # Terminal interface to VMs
│ │ ├── formatter.rs # Output formatting utilities
│ │ └── interactive.rs # REPL-based control interface
│
│ ├── core/ # Core virtualization engine
│ │ ├── mod.rs # Core module entry point
│ │ ├── vm.rs # Main VM structure and lifecycle
│ │ ├── cpu.rs # Basic x86 CPU emulation
│ │ ├── memory.rs # Memory and MMU management
│ │ ├── devices/ # Virtual hardware modules
│ │ │ ├── mod.rs
│ │ │ ├── serial.rs # Serial console
│ │ │ ├── disk.rs # Virtual disk controller
│ │ │ ├── keyboard.rs # Keyboard input
│ │ │ └── timer.rs # System timer
│ │ └── asm/ # Low-level assembly routines
│ │ ├── boot.asm # Bootloader
│ │ └── helpers.s # Optimized operations
│
│ ├── hypervisor/ # Platform abstraction backends
│ │ ├── mod.rs
│ │ ├── kvm.rs # Linux KVM integration
│ │ ├── hvf.rs # macOS Hypervisor.framework support
│ │ └── traits.rs # Backend interface traits
│
│ ├── storage/ # Virtual disk storage formats
│ │ ├── mod.rs
│ │ ├── qcow2.rs # QCOW2 format support
│ │ ├── raw.rs # Raw disk image support
│ │ └── snapshot.rs # Snapshot management
│
│ ├── network/ # Basic networking support
│ │ ├── mod.rs
│ │ ├── tap.rs # TAP device interface
│ │ └── nat.rs # Network address translation
│
│ ├── security/ # Security features
│ │ ├── mod.rs
│ │ ├── sandbox.rs # Process isolation
│ │ ├── monitor.rs # Runtime monitoring
│ │ └── forensics.rs # Memory inspection and analysis
│
│ └── utils/ # Utilities and shared components
│ ├── mod.rs
│ ├── error.rs # Error definitions
│ ├── config.rs # Configuration parsing
│ └── logger.rs # Logging setup
│
├── tests/ # Testing suite
│ ├── integration/ # End-to-end tests
│ └── unit/ # Component-level tests
│
└── examples/ # Demonstrative usage
├── basic_vm.rs # Minimal VM startup
├── security_lab.rs # Security use cases
└── automated_analysis.rs # Batch operations
- Language: Rust
- CLI Framework:
clap
- Web Framework:
axum
- Async Runtime:
tokio
- Terminal UI:
ratatui
- Assembly: NASM (x86 support)
- WebSockets: Via
axum
andtokio
- Testing: Rust native testing framework
- Memory Mapping:
mmap
for optimized file access - AI Integration (optional): Lightweight Python models via FFI