完全离线
引擎、词库和整句模型都在浏览器的 Web Worker 里运行。没有服务器参与转换,输入的内容不会被上传。
MSIME · WebAssembly
水杉输入法的 Rust 引擎编译成 WebAssembly,就运行在这个页面里。全拼、双拼、五笔,整句联想,完全离线,输入的内容不会离开你的设备。
点这里直接打字,比如 woshizhongguoren 再按空格
检测到系统输入法正在处理按键。请把系统输入法切换到英文(如 macOS 的 ABC、Windows 的英语键盘),就能用上水杉。
这个演示需要实体键盘。手机和平板上请连接键盘,或在电脑上打开。
按上面选中的选项生成,复制即可用。
MsimeFrame打字后,这里显示引擎返回的每一帧。
和桌面版的操作一致。attachInput 和 keyFromEvent 已经处理好这些按键,接入时不用再写。
浏览器会先把可编辑元素(<textarea>、<input>)上的按键交给系统输入法。访客开着系统的中文输入法时,按键会先被它接走,水杉拿不到。用 attachInput 挂在文本框上时,需要访客切到英文输入;像这个页面一样用一个看不见的密码框接收按键、自己画输入区,就不受系统输入法影响:浏览器在密码框里会停用系统输入法。
不会。引擎、词库和整句模型都下载到浏览器里,在 Web Worker 中运行,转换过程不访问任何服务器。页面加载完以后断网也能继续打字。
全拼和双拼约 16 MB(不下载整句模型约 12 MB),五笔约 8 MB,只下载当前方案用到的文件。浏览器会缓存这些文件,再次打开基本不用重新下载。
引擎能在手机浏览器里运行,但它处理的是实体键盘的按键,手机的屏幕键盘不会发出这些按键事件,所以需要连接实体键盘。
需要 WebAssembly、模块 Worker 和 DecompressionStream:Chrome / Edge 80 及以上、Firefox 114 及以上、Safari 16.4 及以上。页面设置了内容安全策略(CSP)时,script-src 要允许 'wasm-unsafe-eval'。
@msime/web-engine 以 GPL-3.0-only 发布,使用时需要遵守 GPL 的条款。词库、模型和第三方组件的许可见包内的 assets/NOTICE.md,部署时请一并发布。
引擎、词库和整句模型都在浏览器的 Web Worker 里运行。没有服务器参与转换,输入的内容不会被上传。
与 macOS、Linux、Android、iOS、HarmonyOS 版共用一套 Rust 输入引擎,同样的词库,同样的候选排序。
以 npm 包 @msime/web-engine 发布,GitHub Pages、Vercel、Cloudflare Pages / Workers 都能直接托管,也能从 jsDelivr CDN 引用。