Skip to content

Repository files navigation

rustOS (Simulator)

An operating system simulator built in Rust, running on Windows, featuring a graphical interface, WASI app execution, permission system, and a Windows-style login.

rustOS Platform License

Features

  • 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).

Running

Prerequisites

  • Rust installed (1.70+)
  • Windows 10/11

Commands

# Clone the repository
cd G:\Projetos\rustOS

# Run in debug mode
cargo run -p rustos

# Run in release mode (faster)
cargo run -p rustos --release

Login System

Upon startup, you will be greeted by the Login Screen.

  1. First Run: Click Create First User, enter a name and PIN.
  2. Login: Select your user and enter the PIN.
  3. Sign Out: Open Start Menu -> Sign Out.
  4. Customization: Changing wallpaper, colors, language, or font size in Settings saves it to your specific user profile.

Integrated App Store 🛍️

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.

File Manager

The File Manager allows native-like file browsing.

  • Navigation: Path bar, Up button, Quick access.
  • File Associations: Double-click .png files to open them in Paint.
  • Context Menu: Right-click to Rename, Delete, or View Properties.

Terminal Commands

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

Creating Apps for rustOS

Compatible apps use the WASI (WebAssembly System Interface) target.

1. Create & Build

cargo new my_app
rustup target add wasm32-wasip1
cargo build --target wasm32-wasip1 --release

2. Manifest (rustos_app.toml)

id = "my_app"
name = "My App"
version = "1.0.0"
entry_kind = "wasi_wasm"
entry_path = "target/wasm32-wasip1/release/my_app.wasm"

Project Structure

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

Roadmap

Core Features

  • Networking support for apps
  • Integrated app store (Basic)
  • Login System & User Data
  • File Associations
  • Drag & drop files
  • Command AutocompleteCompleted

Command Autocomplete — Features

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

App Store Features ✅

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

Current Implementation Status

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

License

MIT License - see LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages