diff --git a/Cargo.toml b/Cargo.toml index 9c31b7d..9f36bef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,7 @@ web-sys = { version = "0.3", default-features = false, features = [ ] } [[workspace.metadata.leptos]] -name = "base_path_demo" +name = "rustui_playground" bin-package = "server" lib-package = "app" site-root = "target/site" diff --git a/TERMINAL_DEVELOPMENT_GUIDE.md b/TERMINAL_DEVELOPMENT_GUIDE.md index f8880a1..ab6ba68 100644 --- a/TERMINAL_DEVELOPMENT_GUIDE.md +++ b/TERMINAL_DEVELOPMENT_GUIDE.md @@ -1,6 +1,6 @@ # Rust Browser Terminal Development Guide -本指南用于在 `base-path-demo` 中实现一套 Rust 终端能力: +本指南用于在 `rustui-playground` 中实现一套 Rust 终端能力: - 后端:Axum + `portable-pty` 创建真实伪终端,负责启动 shell、读写 PTY、处理 resize。 - 前端:Rust/WASM + Leptos 实现浏览器终端组件,负责输入、渲染、滚屏、选区和终端状态。 @@ -27,7 +27,7 @@ Shell process: bash/zsh/fish/vim/top 建议分四层沉淀。 ```text -base-path-demo/ +rustui-playground/ app/ src/ pages/terminal.rs @@ -63,7 +63,7 @@ crates/ 当前 workspace 已有 `axum = "0.8"`,但 WebSocket 模块需要启用 `ws` feature。 -建议先调整 `base-path-demo/Cargo.toml`: +建议先调整 `rustui-playground/Cargo.toml`: ```toml [workspace.dependencies] @@ -501,7 +501,7 @@ MVP 安全策略: - 从消息类型抽出 `terminal-protocol`。 - 从 server module 抽出 `terminal-pty-server`。 -验收:`base-path-demo` 只依赖这些 crates,不再持有核心实现。 +验收:`rustui-playground` 只依赖这些 crates,不再持有核心实现。 ### M5: 自研 parser/buffer diff --git a/TERMINAL_HANDOFF.md b/TERMINAL_HANDOFF.md index aed4b3c..60c702e 100644 --- a/TERMINAL_HANDOFF.md +++ b/TERMINAL_HANDOFF.md @@ -2,11 +2,11 @@ > 说明:本文档保留早期 scrollback 排查背景。当前终端实现已经进入 WebGL 默认渲染器、addon parity 与 P9 renderer 工程化阶段;最新状态请优先看 `TERMINAL_ROADMAP.md`。 -本文档用于把 `base-path-demo` 当前浏览器终端实现的状态、已验证结论、未解决问题和下一步建议整理清楚,方便后续继续开发。 +本文档用于把 `rustui-playground` 当前浏览器终端实现的状态、已验证结论、未解决问题和下一步建议整理清楚,方便后续继续开发。 ## 1. 当前目标 -项目目标不是简单接一个现成 JS 终端,而是在 `base-path-demo` 中逐步沉淀一套 Rust 终端能力: +项目目标不是简单接一个现成 JS 终端,而是在 `rustui-playground` 中逐步沉淀一套 Rust 终端能力: - 后端:`Axum + portable-pty` - 前端:`Leptos + Rust/WASM` diff --git a/TERMINAL_ROADMAP.md b/TERMINAL_ROADMAP.md index 54fb4ff..f631e4d 100644 --- a/TERMINAL_ROADMAP.md +++ b/TERMINAL_ROADMAP.md @@ -1,6 +1,6 @@ # Terminal Roadmap — 对照 xterm.js 的追平计划 -本文档记录 `base-path-demo` 浏览器终端**当前已实现的能力**、**相比 xterm.js 仍缺失的功能**,以及每一项**计划的实现方式与优先级**,供后续开发接手。 +本文档记录 `rustui-playground` 浏览器终端**当前已实现的能力**、**相比 xterm.js 仍缺失的功能**,以及每一项**计划的实现方式与优先级**,供后续开发接手。 > 定位提醒:本项目目标不是复刻 xterm.js 这个通用 JS 终端库,而是按 [TERMINAL_HANDOFF.md](TERMINAL_HANDOFF.md) 的方向,用 `Axum + portable-pty`(后端)+ `Leptos + Rust/WASM`(前端)沉淀一套**高性能、可复用的 Rust 终端组件**。因此追平的重点是「让真实终端会话好用且性能好」,而非铺平 xterm.js 的全部 API 面。 > diff --git a/app/build.rs b/app/build.rs index f3b3539..53d64c0 100644 --- a/app/build.rs +++ b/app/build.rs @@ -1,3 +1,3 @@ fn main() { - println!("cargo:rustc-env=LEPTOS_OUTPUT_NAME=base_path_demo"); + println!("cargo:rustc-env=LEPTOS_OUTPUT_NAME=rustui_playground"); } diff --git a/app/src/shell.rs b/app/src/shell.rs index 4e4c51a..0b8b8fe 100644 --- a/app/src/shell.rs +++ b/app/src/shell.rs @@ -5,9 +5,9 @@ use leptos_meta::MetaTags; use crate::app::App; pub fn shell(options: LeptosOptions) -> impl IntoView { - let css_href = SiteConfig::with_base_path("/pkg/base_path_demo.css"); - let js_href = SiteConfig::with_base_path("/pkg/base_path_demo.js"); - let wasm_href = SiteConfig::with_base_path("/pkg/base_path_demo.wasm"); + let css_href = SiteConfig::with_base_path("/pkg/rustui_playground.css"); + let js_href = SiteConfig::with_base_path("/pkg/rustui_playground.js"); + let wasm_href = SiteConfig::with_base_path("/pkg/rustui_playground.wasm"); let hydration_script = format!( r#"import("{js_href}").then((mod) => {{ mod.default({{ module_or_path: "{wasm_href}" }}).then(() => mod.hydrate());