An operating system simulator built in Rust, running on Windows, featuring a graphical interface, WASI app execution, permission system, and a Windows-style login.
- ✅ Login System with user management, PIN authentication, and per-user wallpaper persistence.
- ✅ User Persistence Settings (Language, Colors, Font Size) saved per user.
- ✅ Desktop with customizable background (color or image, saved per user).
- ✅ Start Menu Windows-style (user info, apps, shutdown, sign out).
- ✅ Integrated App Store (download WASI apps via GitHub).
- ✅ File Manager with simulated folders and File Associations (double-click to open).
- ✅ Integrated Terminal with basic commands.
- ✅ WASI app execution via Wasmtime.
- ✅ Permission System per app (sandbox).
- ✅ Multi-language Support (English, Spanish, Portuguese, French).
- Rust installed (1.70+)
- Windows 10/11
# Clone the repository
cd G:\Projetos\rustOS
# Run in debug mode
cargo run -p rustos
# Run in release mode (faster)
cargo run -p rustos --releaseUpon startup, you will be greeted by the Login Screen.
- First Run: Click Create First User, enter a name and PIN.
- Login: Select your user and enter the PIN.
- Sign Out: Open Start Menu -> Sign Out.
- Customization: Changing wallpaper, colors, language, or font size in Settings saves it to your specific user profile.
rustOS includes a graphical App Store for discovering and installing WASI applications.
- Browse: View curated apps in the store.
- Install: One-click install from GitHub.
- Status: Currently supports installing apps. Updates and Uninstall are coming soon.
The File Manager allows native-like file browsing.
- Navigation: Path bar, Up button, Quick access.
- File Associations: Double-click
.pngfiles to open them in Paint. - Context Menu: Right-click to Rename, Delete, or View Properties.
| Command | Description |
|---|---|
help |
List all commands |
ls [path] |
List files |
cd <path> |
Change directory |
apps |
List installed apps |
install <url> |
Install app from GitHub (e.g. user/repo) |
grant <app> <perm> |
Grant permission |
run <app_id> |
Run app |
exit |
Close terminal |
Compatible apps use the WASI (WebAssembly System Interface) target.
cargo new my_app
rustup target add wasm32-wasip1
cargo build --target wasm32-wasip1 --releaseid = "my_app"
name = "My App"
version = "1.0.0"
entry_kind = "wasi_wasm"
entry_path = "target/wasm32-wasip1/release/my_app.wasm"rustOS/
├── rustos/ # Main Operating System
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ ├── users.rs # User management
│ │ ├── ui/ # UI Modules (store, login, etc.)
│ │ ├── programs.rs # App Registry & Associations
│ │ ├── github.rs # Store Installer
│ │ └── wasm_runtime.rs # Wasmtime Integration
└── rustos_sdk/ # SDK for apps
- Networking support for apps
- Integrated app store (Basic)
- Login System & User Data
- File Associations
- Drag & drop files
- Command Autocomplete ✅ Completed
| Feature | Status |
|---|---|
| Tab key triggers suggestions | ✅ Done |
| Command prefix matching (17 commands) | ✅ Done |
Dynamic run <app_id> suggestions |
✅ Done |
| Path autocomplete via VFS | ✅ Done |
| Popup UI with arrow navigation | ✅ Done |
| Escape to dismiss | ✅ Done |
| Single match auto-inserts | ✅ Done |
| Feature | Status |
|---|---|
| 🔍 Search Bar | ✅ Done |
| 📁 Categories Panel | ✅ Done |
| 📄 Detailed App View | ✅ Done |
| ❌ Uninstall | ✅ Done |
| 🔄 Updates | ✅ Via reinstall |
| 🌐 Dynamic Repository | ✅ Done |
| 📊 Progress UI | ✅ Done |
| ⭐ Ratings Display | ✅ Done |
| 📦 Installed Tab | ✅ Done |
| Component | File | Status |
|---|---|---|
| Terminal | terminal.rs |
✅ 17 commands, autocomplete |
| App Store UI | ui/store.rs |
✅ Full feature set |
| Store Data | store_data.rs |
✅ Dynamic + fallback |
| User Persistence | users.rs |
✅ Per-user settings |
MIT License - see LICENSE for details.
