ByteNoteByteNote
用一套 Rust 引擎喂饱六个平台的中文输入法
字

字节笔记本

2026年10月5日 · 约 4 分钟读完

用一套 Rust 引擎喂饱六个平台的中文输入法

API中转
¥120

中文输入法这个品类,Android 上有讯飞搜狗,桌面端有各家商业方案,开源阵营常年是 Rime 一家独大但配置门槛劝退了大多数人。现在多了一个认真程度出乎意料的选手:水杉输入法(MSIME),232 星,GPL-3.0,Rust 写的,一口气覆盖 Android、iOS、macOS、Linux、Windows 和 HarmonyOS 六个平台,9 月初创建,今天还在推代码。

先澄清名字:MSIME 是 Metasequoia IME 的缩写,和 Microsoft IME 没有任何关系;设置里的 microsoft 双拼方案也只是「微软双拼」这个键位方案的名称,与小鹤、自然码、首道并列。

msime 架构:一套引擎,六端原生宿主

架构是它最值得看的地方

多数「跨平台输入法」实际是拿一个跨平台 UI 框架包一层,每个系统的输入法协议又各自凑合。水杉的方案反过来:输入算法沉淀在一个纯 Rust 引擎 msime-engine(从原 C++ MSIME-Engine 移植),承载组词状态机、各输入方案、词库查询和学习回放;引擎之上是一层版本化的 C 接口 host-api,六个平台的宿主全部链接它;再往上是宿主无关的 client-core(配置、词库、剪贴板、语音、翻译、打字统计)和一套 React 设置界面。

而每个平台的产品本体仍然是十足的原生宿主:Android 是跑在独立进程的输入法服务经 JNI 调 Rust;iOS 是键盘扩展加 App Group 共享状态;macOS 是 InputMethodKit bundle,用 Sparkle 自动更新;Linux 同时提供 IBus 和 Fcitx5 两个入口;Windows 是进程内 TSF DLL 加进程外 Server 经命名管道通信,候选窗用 Direct2D 画;HarmonyOS 用 InputMethodExtensionAbility 经 NAPI 接入。Tauri 在这个项目里只承载设置界面,明确写了「不是产品本体」。

官方封面:六端一致的产品形态

隐私账算得清

输入法能看到你打的一切,这个项目把这件事当成核心卖点来做:仓库里有一份可以逐条核对的 PRIVACY.md。默认配置下,唯一会把输入内容发出去的功能是云联想(发给 Google 输入工具,可关闭);匿名使用统计(每日活跃、会话、崩溃摘要)默认开启但可一键关闭;仓库不接任何第三方统计或崩溃 SDK。对一个输入法来说,这种「字段级」的隐私交代比多少句「保护你的隐私」都实在。

工程细节同样在线

双拼覆盖微软、小鹤、自然码、首道四种方案;手写输入接 ML Kit Digital Ink;词库、皮肤、音效、辅助码表都走插件体系,官方有插件作者指南。CI 按平台拆成九条 workflow,六个平台的发布完全独立,各有版本文件和 android-vX.Y.Z 这类平台前缀的 tag,某个平台出问题不会连累其他五端的发版。

快速上手

各平台安装包在仓库的 GitHub Releases 里按平台 tag 领取,官网 msime.app 有产品介绍;桌面端设置界面是 React 写的,Windows 装完走 Inno Setup 安装器注册成系统 TIP 输入法,开箱即用。想参与开发的话,仓库的 ARCHITECTURE.md 和各平台 README 把宿主边界写得非常清楚,Rust 引擎层和平台适配层的贡献路径是分开的。

适合谁用

受够了商业输入法广告和隐私条款的人,第一梯队;多设备用户(尤其手机桌面跨苹果安卓鸿蒙的)会喜欢同一套词库和设置跨端一致;Rime 老用户可以把它当「开箱即用派」的对照选项;Rust 开发者则可以纯粹去看它的架构,宿主无关引擎加版本化 C ABI 的设计,是跨平台系统软件很好的教学样本。

输入法是最难写的桌面软件之一,六个平台都做成原生宿主更是自我加压。这个项目 9 月初才公开,星数还在早期,但工程素养已经写进了仓库结构里,值得放进观察名单持续跟进。仓库地址:metasequoiaime/msime。

相关文章

分享: