Explore how programming languages actually work — from source code down to electrons.
EduWorld is a desktop application that lets you pick any of 20+ programming languages and see exactly what happens under the hood: the source code, the full compilation pipeline, disassembly of the machine code, raw hex bytes on disk, how bits map to voltage signals, and a deep-dive essay covering the language's design decisions and runtime internals.
| Language | Version | Runs In-App |
|---|---|---|
| x86-64 Assembly | NASM | ✅ compiled binary |
| C | C99 | ✅ compiled binary |
| C++ | C++20 | ✅ compiled binary |
| Rust | 2021 edition | ✅ compiled binary |
| Go | 1.21+ | ✅ compiled binary |
| Zig | 0.13+ | ✅ compiled binary |
| D | D2 | ✅ compiled binary |
| Odin | dev | ✅ compiled binary |
| Fortran | F90/2018 | ✅ compiled binary |
| Language | Version | Runs In-App |
|---|---|---|
| Python | 3.x | ✅ needs python3 |
| Ruby | 3.x | ✅ needs ruby |
| Lua | 5.4 | ✅ needs lua |
| Perl | 5.x | ✅ needs perl |
| Bash | 5.x | ✅ pre-installed |
| PHP | 8.3 | ✅ needs php |
| R | 4.x | ✅ needs Rscript |
| Language | Version | Runs In-App |
|---|---|---|
| JavaScript | ES2022 | ✅ needs node |
| TypeScript | 5.x | ✅ needs ts-node |
| Java | 21 LTS | |
| Kotlin | 2.x | |
| C# | .NET 8 | |
| Swift | 5.9+ |
⚠️ Java, Kotlin, C#, and Swift require a full build toolchain to run. EduWorld shows their source, disassembly, and deep dive content — the RUN button displays install instructions for each.
- SOURCE — The actual hello world source file with comments explaining every line
- COMPILE STEPS — Every command and flag needed to go from source to executable, explained
- DISASSEMBLY — The machine code the CPU executes, shown as human-readable mnemonics
- HEX / BINARY — Raw bytes on disk: ELF headers, section layout, string data
- 0s & 1s — How each layer translates the program from source → IR → opcodes → voltage
- DEEP DIVE — Language design decisions, runtime internals, history, and performance characteristics
# Arch / CachyOS
sudo pacman -S rustup nodejs npm nasm gcc zig gcc-fortran go
# Rust toolchain
rustup default stable
# Tauri CLI
cargo install tauri-cli# From the project root
bash build-binaries.shThis compiles all 9 pre-compiled language binaries into src-tauri/binaries/. D (ldc2) and Odin are skipped gracefully if not installed.
npm install
cargo tauri devcargo tauri buildOutput: src-tauri/target/release/hello-world-explorer
sudo pacman -S ruby lua nodejs php r
npm install -g ts-node typescriptmkdir -p EduWorld-linux-x64
cp src-tauri/target/release/hello-world-explorer EduWorld-linux-x64/eduworld
cp -r src-tauri/binaries EduWorld-linux-x64/
tar -czf EduWorld-linux-x64.tar.gz EduWorld-linux-x64/Users run:
tar -xzf EduWorld-linux-x64.tar.gz
cd EduWorld-linux-x64 && ./eduworldeduworld/
├── frontend/
│ └── index.html # Entire UI — all 20+ languages baked in, single file
├── src-tauri/
│ ├── src/
│ │ ├── main.rs # Tauri entry point
│ │ └── lib.rs # run_hello_world command — handles binary/interpreter/not-runnable
│ ├── binaries/ # Source files + compiled binaries (binaries gitignored)
│ ├── icons/ # App icons
│ ├── capabilities/ # Tauri v2 permission manifest
│ └── tauri.conf.json
├── flatpak/ # Flatpak manifest + desktop entry + metainfo
├── build-binaries.sh # Compiles all 9 pre-compiled language binaries
└── README.md
Pull requests welcome. If you want to add a language:
- Add the source file to
src-tauri/binaries/hello.ext - Add the execution mode to
lib.rs(exec_modematch block) - Add the full language entry to
LANGSinfrontend/index.html— source, compile steps, disassembly, hex view, bits explanation, and deep dive - If it's a compiled language, add the build command to
build-binaries.sh
