前言¶
在 DeepSeek Harness(DSH)裏做 Rust 服務開發時,常見的狀態是:課程和文檔散在瀏覽器書籤、play.rust-lang.org、docs.rs 之間來回切,練習要開新頁面,進度只能靠”自己記得讀到第幾章”。DeepSeek Harness 的理念是”一切皆插件”,側邊欄(sidebar.panellist)本身就是給這類內容留的位置。下面介紹的 ramanasai/dsh-rust-academy 就是把這個位置填成一門帶練習、進度跟蹤和語法速查表的 Rust 課程,維護者是 ramanasai,分類是客戶端插件。
這是什麼¶
dsh-rust-academy(包名 @local/rust-academy)是一個客戶端爲主的 DSH 插件,把 Rust 課程整體嵌入 Harness 左側邊欄。README 聲稱覆蓋 32 軌、640 章,從 fn main 講到分佈式系統;每章只要講一個窄概念,按從基礎到生產深度的順序排列。倉庫描述本身寫的是 “20-lesson Rust course with exercises, progress tracking and a syntax cheatsheet”,package.json 的 description 又寫 “six tracks”。三個數字對不上,後面會單獨說明。
許可證是 MIT。截至 2026-11-07,倉庫 0 星、0 fork,最新 release 是 v3.15.0(2026-11-05),package.json 的 version 同爲 3.15.0,默認分支 main,語言 JavaScript。
核心功能¶
課程內容。README 列出的 32 軌覆蓋 Rust 基礎、生產級 Web 服務(axum 0.8)、數據與持久化(SQLx)、微服務與消息(tonic/gRPC、Kafka、NATS)、進程處理、生產與平臺、Rust 深入、算法與數據結構、數據庫內部、分佈式系統、網絡協議、安全工程、測試、可觀測性、交付平臺、數據工程、系統編程、AI/ML、架構設計、面試準備、畢業項目、WASM 前端、嵌入式、設計原則、工程手藝、性能工程、併發模式、API 設計、調試、操作系統、編譯器內部。每章據 README 描述包含目標、解釋、真實代碼、帶提示和解答的練習、以及自測題。
Playground。這是 v3.15.0 的重點,把運行環境做成 IDE 風格:語法高亮、行號、自動縮進、Tab/Shift+Tab、Ctrl/Cmd+/ 註釋切換、可調字號與換行;輸出分 Output / Problems / Tests 三個面板,狀態欄顯示 Local/Remote、耗時、光標位置。每個代碼塊帶 Run 按鈕,練習提供 Open starter / Run solution。運行走官方 play.rust-lang.org 沙箱(遠程、需聯網),啓用本地 runner 時也可在沙箱化臨時工作區本地運行。支持 Ctrl/Cmd+Enter 運行、Ctrl/Cmd+S 格式化、Clippy lint、rustfmt、按測試運行並給 pass/fail 彙總、解析診斷信息。
其他。12 個參考藍圖(master–detail 視圖、請求流、組件卡、生產清單、關聯章節與參考資料);40 組語法速查、231 條可直接複製的片段,可搜索,帶一鍵 Try in Playground;按軌和總進度跟蹤;對章節 / crate / 模式做全文搜索;跳轉到指定軌。每章鏈接按 Docs、Repo、Paper、Video 分類標註。
安裝與啓用¶
README 給出的安裝流程分兩步,均來自原文。
第一步,把倉庫拉到本地(README 原文命令):
git clone https://github.com/ramanasai/dsh-rust-academy.git
第二步,在 Harness 會話中用 Plugin Manager 安裝 bundle。這一步需要 Full 權限或審批:
plugin_manager install_bundle target=/absolute/path/to/dsh-rust-academy
bundle 是從檢查目錄鏈接過去的,所以改 client.js 會直接改變 profile 使用的來源;想用重新生成的模塊,需要重裝或刷新頁面。
插件註冊的兩個槽位來自 README:
| Slot | Registration |
|---|---|
sidebar.panellist |
id: rust-academy, order: 20, localized label |
main |
key: rust-academy |
Host 端的 index.js 是 no-op,面板不依賴任何 Host 能力。課程數據在構建時以 JSON 形式嵌入 Client 模塊,運行時不發請求、不訪問數據庫和文件系統。樣式只用 --dsw-alias-* 主題 token,明暗主題跟隨 Harness。package.json 裏 dsh.bundle.patch 指向 ./cordis.patch.yml,dsh.client.platform 爲 web。
典型用法¶
裝完後,在 Web GUI 左側邊欄會出現 rust-academy 面板。學習路徑:從某軌進入一章 → 看解釋和代碼 → 在練習處點 Open starter in Playground → 改完點 Run solution 對比 → 用自測題檢查 → 完成的章節計入該軌進度。
想直接查語法時走速查面板:搜索關鍵詞,找到片段後複製,或點 Try in Playground 載入 Playground 再改。
內容編輯與構建¶
這是維護者關心的部分。課程內容放在 src/data/*.mjs,一軌一個模塊;速查和藍圖在 reference.mjs;軌順序在 src/data/index.mjs;src/app.js 是 UI 模板;build.mjs 注入數據並生成 client.js。驗證與構建命令:
node scripts/validate-data.mjs src/data/web.mjs # 校驗單個軌
node build.mjs # 重新生成 client.js + compiler gate
node build.mjs --no-snippets # 跳過 gate 的快速本地構建
node --check client.js # 語法檢查產物
build.mjs 會對課程裏每一個 Rust 片段跑 compiler gate:需要 rustfmt(即 rustc parser)接受、並執行 se…(README 此處截斷)的檢查。另有審計腳本 node scripts/audit-content.mjs(npm run audit)和基線更新命令 node scripts/compiler-gate.mjs --update-baseline。
適用場景與注意¶
適合想在 DSH 工作流內直接學 Rust 或給團隊做 Rust 內訓的人,尤其是已經把 Harness 當主力工具、不想頻繁切窗口的場景。因爲是客戶端插件,界面在 Web GUI 裏渲染,Desktop 或 dsh web 都可用;安裝前不需要 npm install,client.js 已提交,無運行時依賴。
幾點提醒。第一,插件以當前 DSH 進程的權限運行,安裝前應打開源碼和許可證確認,尤其注意 dsh.bundle.patch 會應用 cordis.patch.yml。第二,README 的軌道數存在明顯不一致:開頭寫 32 軌 / 640 章,倉庫描述寫 20 課,package.json 寫 six tracks,而 Track 表裏各軌章節數加起來也到不了 640,實際內容規模需要自己拉下來覈對。第三,運行默認走 play.rust-lang.org 遠程沙箱,無外網時本地 runner 需要自行啓用並確認沙箱配置。第四,作爲社區目錄收錄的客戶端插件,它與 DeepSeek / 幻方沒有官方從屬關係,維護狀態與內容更新需自行觀察。
結尾¶
這個插件的價值在於把課程、練習和運行環境壓進 DSH 側邊欄,用客戶端能力做到無運行時依賴、無外部數據源。目錄頁在 https://www.skillhub.cn/plugins/ramanasai/dsh-rust-academy ,倉庫在 https://github.com/ramanasai/dsh-rust-academy 。