A modern, high-performance portfolio website built with SvelteKit and TypeScript, featuring a fully functional 8-bit RISC CPU emulator powered by Rust and WebAssembly.
This project serves two purposes:
- Personal Portfolio: Showcasing software engineering projects, experience, and technical skills.
- Technical Demonstration: Embedding a complex system (a CPU emulator) directly into the browser using WebAssembly to demonstrate performance and interoperability between high-level web frameworks and low-level systems languages.
- Full-Stack Architecture: Built with SvelteKit (Svelte 5) and TypeScript.
- Systems Programming on the Web: Integrates a Rust-based CPU emulator via WASM.
- Custom CPU Emulator:
- Emulates "Electron Redstone," a custom 8-bit RISC architecture.
- Visualizes the 4-stage pipeline (Fetch, Decode, Execute, Writeback).
- Interactive debugger with Register, RAM, and Port views.
- Supports a custom assembly language with a built-in assembler/parser.
- See ARCHITECTURE-v2.md for programming instructions.
- Modern Styling: Responsive design using TailwindCSS.
- Type Safety: End-to-end type safety with TypeScript and Rust.
- Frontend: SvelteKit, Svelte 5, TypeScript, TailwindCSS
- Systems/WASM: Rust, wasm-bindgen, serde-wasm-bindgen
- Build Tools: Vite, npm, wasm-pack
- Testing: Playwright
- Node.js (v18+ recommended)
- Rust & Cargo (for WASM development)
wasm-pack(cargo install wasm-pack)
-
Clone the repository
git clone https://github.com/eliperez-dev/Portfolio-Website.git cd Portfolio-Website -
Install dependencies
npm install
-
Build the WebAssembly module The emulator core is written in Rust. You need to compile it to WASM before running the dev server.
cd wasm wasm-pack build --target web cd ..
-
Run the development server
npm run dev
-
Open in browser Navigate to
http://localhost:5173to see the site.