Skip to content

About this template

What this is

netsim-template is a starter template for building browser-based network simulation labs. It ships a pure-frontend stack — Vue 3 + VitePress + a Rust/WebAssembly network engine — plus one canonical example challenge. Fork it, fill it with your own challenges, and deploy as a static site.

The template is intentionally minimal. You will not find a pre-built curriculum here; you will find the framework on which you can build one.

What this is not

  • Not a finished course. The 11 challenges, concept pages, and teacher guides that previously lived here have been removed in favour of a single canonical example. Downstream forks supply the actual course content.
  • Not opinionated about content. The challenge DSL accepts any topology, protocol mix, and difficulty progression you choose.
  • Not language-locked. English is the primary locale; Traditional Chinese ships as a working secondary; add more locales via VitePress's native locales config.

What ships in the box

ComponentWhat it does
VitePress shellDocumentation site framework with native multi-locale support
Vue 3 componentsInteractive simulator UI: terminal, topology canvas, traffic log, flag submission
Rust + WASM engineReal-protocol simulation (Ethernet/ARP/IPv4/TCP/HTTP) compiled to WebAssembly
Challenge DSLYAML-based config schema for authoring new challenges (config.yaml + index.md per challenge)
Validation scriptspnpm validate:challenges enforces challenge structure on commit
QA pipelinespnpm test, pnpm docs:build, pnpm qa:site-smoke for build / unit / smoke gates

Getting started

  • 📖 Guide — Learn how to operate the SimNet UI (terminal, topology, traffic log, defense / repair tools)
  • 🏴‍☠️ Example challenge — The canonical 01-ethernet-basics reference and the authoring quickstart
  • 🔧 Developer guide — Architecture, the WASM engine, and how to add your own challenges

License

The template is released under the Educational Community License 2.0 (ECL-2.0), an Apache-2.0-style license tailored for the educational community. You may freely use, modify, and redistribute it.