關於本範本
這是什麼
netsim-template 是一個起始範本,用於建立瀏覽器中的網路模擬實驗環境。它打包了純前端技術堆疊—— Vue 3 + VitePress + Rust/WebAssembly 網路引擎——並附上一個 canonical 範例挑戰。fork 後填入你自己的挑戰內容,即可部署為靜態網站。
本範本刻意保持精簡。這裡不會提供現成課程,而是提供一個可以拿來建立課程的框架。
這不是什麼
- 不是完成版課程。原本內附的 11 道挑戰、概念頁面與教師指南均已移除,僅保留一個 canonical 範例。下游 fork 自行補充課程內容。
- 對內容無預設立場。挑戰 DSL 接受任意拓撲、協定組合與難度設計。
- 不鎖定語系。英文為主語系;繁體中文為運作良好的次語系;可透過 VitePress 原生
locales機制再擴充其他語言。
範本內容物
| 組成 | 功能 |
|---|---|
| VitePress shell | 內建多語系支援的文件站架構 |
| Vue 3 元件 | 互動式模擬器 UI:終端、拓撲畫布、流量日誌、Flag 提交 |
| Rust + WASM 引擎 | 編譯為 WebAssembly 的真實協定模擬(Ethernet / ARP / IPv4 / TCP / HTTP) |
| 挑戰 DSL | 以 YAML 為主的挑戰結構 schema(每個挑戰有 config.yaml + index.md) |
| 驗證腳本 | pnpm validate:challenges 於 commit 前強制檢查挑戰結構 |
| QA pipeline | pnpm test、pnpm docs:build、pnpm qa:site-smoke 提供 build / 單元 / smoke 三道閘 |
開始使用
- 📖 使用指南 — 學習操作 SimNet UI(終端、拓撲、流量日誌、防禦/修復工具)
- 🏴☠️ 範例挑戰 — canonical
01-ethernet-basics參考實作與作者快速入門 - 🔧 開發者指南 — 系統架構、WASM 引擎、如何新增自己的挑戰
授權
本範本採 Educational Community License 2.0(ECL-2.0)發布,為教育社群量身打造的 Apache-2.0 風格授權。你可以自由使用、修改、散布。