Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻译准备中
水杉输入法(MSIME)是开源中文输入法,面向 Windows、macOS、Linux、Android、iOS 与 HarmonyOS 开发,支持全拼、双拼、五笔,候选词旁直接显示译文。查看下载、使用指南与常见问题。
AI 翻译
水杉输入法(MSIME)是开源中文输入法,面向 Windows、macOS、Linux、Android、iOS 与 HarmonyOS 开发,支持全拼、双拼、五笔,候选词旁直接显示译文。查看下载、使用指南与常见问题。
其他Rust · C++GitHub @metasequoiaime在线运营者未确认
试用过了吗? 点一下就好,无需登录。
水杉输入法(MSIME):面向 Android、iOS、macOS、Linux、Windows 与 HarmonyOS 的多平台中文输入法,使用共享输入引擎与各平台原生宿主。
AI 翻译
水杉输入法(MSIME):面向 Android、iOS、macOS、Linux、Windows 与 HarmonyOS 的多平台中文输入法,使用共享输入引擎与各平台原生宿主。
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
水杉输入法(MSIME)是面向 Android、iOS、macOS、Linux、Windows 与 HarmonyOS 的多平台中文输入法。六个平台各有自己的原生输入法宿主,都接入同一套共享输入运行时和同一份 React 设置界面;React 管理界面通过 Tauri 调用普通 Rust 业务库;输入算法由 msime-engine 提供。 项目主页:msime.app · GitHub 仓库 · 贡献者 · 问题反馈 · 代码签名策略 / Code signing policy 关于名称:MSIME 是 Metasequoia IME(水杉输入法)的缩写,与 Microsoft IME 无关,也与微软没有任何关联。代码、包名和仓库名中的 msime 一律是这个含义。设置中的 shuangpin_profile: microsoft 是「微软双拼」方案,与小鹤、自然码、首道并列的四个键位方案之一,供习惯该键位的用户选择,同样不代表任何关联。查看完整 README ↗
简体中文 · English · 日本語 · 한국어 · 繁體中文
打开「显示英文释义」后,查得到释义的候选旁会标出英文。在电脑上再打开「候选词翻译」,按 Ctrl+Enter 上屏的就是高亮候选的英文:只有一条释义时直接上屏,有几条时先列出来让你选。
你打的 候选窗里 按 Ctrl+Enter 上屏
yusuan → 预算 budget → budget
zhoumo → 周末 weekend → weekend
下载水杉输入法 · Windows · macOS · Linux · Android · iOS · HarmonyOS · 免费开源(GPL-3.0-only)
**输入法能看到你输入的一切,所以这个问题应该有一个能逐条核对的答案:哪些数据会离开设备。**简短版本:新装的默认配置下没有功能会把你输入的内容发出设备;云联想(把正在组的拼音发给 Google 输入工具)要你在首次询问或设置里打开,其余联网功能都要你自己填凭据或选择服务才会工作。另有一条不携带输入内容的自有匿名使用统计:六个平台都会向 api.msime.app 发送每日活跃、会话和崩溃(错误摘要与去掉目录的调用栈)记录,默认开启,可以在设置的「匿名使用统计」里关闭——字段、逐平台差异和落盘位置逐条列在 PRIVACY.md。仓库不接入任何第三方统计或崩溃上报 SDK。
水杉输入法(MSIME)是面向 Android、iOS、macOS、Linux、Windows 与 HarmonyOS 的多平台中文输入法。六个平台各有自己的原生输入法宿主,都接入同一套共享输入运行时;设置界面按平台归属:macOS、Linux 与 HarmonyOS 用同一份共享 React 设置页,Windows、iOS 与 Android 用各自的原生设置界面,设置的业务规则应当放在共享的 Rust 层、各平台界面只做界面(目前还有部分规则写在原生界面里);React 设置页在 macOS 与 Linux 上通过 Tauri 调用普通 Rust 业务库,在 HarmonyOS 上不经过 Tauri,由 ArkWeb 加载、经 ArkTS 原生桥与 NAPI 调用 Rust;输入算法由 msime-engine 提供。
项目主页:msime.app · GitHub 仓库 · 贡献者 · 问题反馈 · 爱发电赞助 · 代码签名策略 / Code signing policy
关于名称:MSIME 是 Metasequoia IME(水杉输入法)的缩写,与 Microsoft IME 无关,也与微软没有任何关联。代码、包名和仓库名中的
msime一律是这个含义。设置中的shuangpin_profile: microsoft是「微软双拼」方案,与小鹤、自然码、首道和智能 ABC 并列的五个键位方案之一,供习惯该键位的用户选择,同样不代表任何关联。
crates/client-base、crates/client-core、crates/client-services、crates/client-providers:宿主无关的客户端业务,依赖方向是 base → core → services 与 core → providers,四个都不依赖 Tauri、UI 或平台宿主。client-base 是存储、文件锁、文本谓词、日历和简繁转换;client-core 是本地配置与版本、主题、标点、剪贴板、翻译、云候选与云剪贴板协议、固定资源分代安装;client-services 是账号与会话、社区、使用统计、公告、检查更新、诊断、剪贴板中继、皮肤、插件、词库、常用语和打字统计;client-providers 是语音、服务凭据、AI 和按需下载的资源包。crates/input-runtime:会话编排、焦点取消、候选分页和带代次的选择;不复制 engine 的组词状态机。crates/engine(msime-engine):纯 Rust 输入引擎——组合状态、各输入方案、词库查询与学习回放;由原 C++ MSIME-Engine 移植而来。crates/host-api:版本化 C 接口、线程绑定的会话句柄和显式响应释放,六个平台的宿主都链接它。packages/ui、apps/desktop:共享 React 设置页与 Tauri 承载层,目录名沿用 desktop。React 设置页是 macOS(Tauri 设置应用)、Linux(Tauri 设置应用)与 HarmonyOS(打成 rawfile 由 ArkWeb 加载)的设置界面;Tauri 另在三个桌面平台上承载表情与符号、手写、屏幕键盘、语音、云词库、云剪贴板等共享面板。Windows、iOS 与 Android 发布包的设置是原生界面:iOS 与 Android 发布包不含这些 React 页面;Windows 的托盘、开始菜单和不带面板的请求都打开原生设置程序 msime-client-settings.exe,React 设置页仍随 Tauri 的 MSIME.exe 安装,直接运行 MSIME.exe 能看到,但没有设置入口指向它。归属见架构文档。Rust 入口按 platform/{android,ios,linux,macos,windows,desktop}、shared/、tests/ 分层。Tauri 是公共组件,不是任何平台的产品本体:最终安装、启动、被系统识别为输入法的,始终是 platforms/<os> 下的原生宿主,Tauri/React 只在用到它的平台上由它承载。shared/apple/:macOS 与 iOS 共用的 Foundation / Objective-C++ 桥接,不包含系统输入法入口。platforms/:各系统入口和适配层。Android、iOS、macOS、Linux、Windows 与 HarmonyOS 六个平台各自维护宿主边界,每个宿主都以该系统的原生方式被识别为输入法:Android 的输入法服务、iOS 的键盘扩展、macOS 的 InputMethodKit bundle、Linux 的 IBus 与 Fcitx5 入口、Windows 的 TSF DLL 与 Server、HarmonyOS 的 InputMethodExtensionAbility。共享输入算法和组合状态由 crates/engine 持有,宿主不复制。| 平台 | 入口目录 | 宿主形态与集成方式 |
|---|---|---|
| Android | platforms/android/ | 输入法服务 app.msime.android.MSIMEInputService 跑在 :ime 独立进程,Java 宿主经 platforms/android/native/client_jni.cpp 调 host-api;发布的 APK(build-apk.sh)用原生 Java 设置界面,不含 Tauri/React;带 React 设置的 Tauri 合包(build-client-apk.sh)与输入法同包不同进程、共享私有 files/bootstrap/state,只用于开发验证,不发布;手写走 ML Kit Digital Ink |
| iOS | platforms/ios/ | XcodeGen 从 project.yml 生成的原生 App 内嵌键盘扩展 MSIMEKeyboardExtension,两者通过 App Group group.app.msime.ios 共享状态;Swift 键盘直接调 host-api,手写走 ML Kit Digital Ink |
| macOS | platforms/macos/ | InputMethodKit bundle(产物名 水杉输入法.app,bundle id app.msime.inputmethod.MetasequoiaIME),Swift 后端编成 MSIMEBackend.dylib 随 bundle 分发,Sparkle 负责自动更新 |
| Linux | platforms/linux/ | IBus 与 Fcitx5 是两个并列的系统入口,链同一份 host-api ABI;在线联想、语音、剪贴板等能力由独立 provider 进程加 systemd 用户单元承载;CPack 出 TGZ 与 DEB |
| Windows | platforms/windows/、platforms/windows/tsf/ | 进程内 TSF DLL(MetasequoiaImeTsf)与进程外 MetasequoiaImeServer 经命名管道通信,另有 watchdog 与运行配置准备工具;候选窗口、悬浮工具栏与托盘菜单由 Direct2D/DirectWrite 的 msimeui 绘制;Inno Setup 安装器注册 TIP 并随包词库 |
| HarmonyOS | platforms/harmony/ | ArkTS 的 ( 声明 )承载键盘,经 NAPI 模块 调 host-api;设置页是内联打包进 的同一套共享 React 页面 |
共享库可以加载进不同宿主进程;不要求启动 Tauri 才能输入。六个平台一致:产品形态是 platforms/<os> 的原生宿主,Tauri 只提供跨平台共享的功能与界面,不单独作为产品启动。跨进程的设置变更走显式的持久化与通知机制,不依赖进程内共享内存。
develop 上的基础检查由 Core CI 负责,实际执行的是 actionlint 的 workflow 校验和依赖审查;仓库的文本契约是 scripts/ 下的那批 test-*.py,由 scripts/run-checks.sh 按文件名自动发现并执行,Core CI 的 contracts job 在 Linux 上跑它,scripts/verify-local.sh 在本地跑同一份脚本;缺少所需工具或参考仓库的检查在 CI 上打印 skipped 并通过。iOS 与 macOS 的编译与测试由各自的原生宿主 workflow 负责。Android、Linux、HarmonyOS 与 Windows 由 Native Platform CI 在对应平台或共享层有改动时运行,未改动时明确跳过;这一层覆盖宿主契约、JVM 冒烟、容器构建和交叉编译。设备级的输入验收由各平台 README 记录的设备套件和手动步骤承担,不由 CI 代替。各 workflow 的运行状态见 GitHub Actions;develop 合并频繁,排队中的运行常被后来的推送取消,看结果时以最近一次跑完且未取消的运行为准。
六个平台的发布完全独立:每个平台有自己的手动 release workflow、版本文件、并发组、构建产物和 GitHub Release tag。发布 workflow 只创建 GitHub Release,不自动上传应用商店或使用签名凭据。
贡献代码前请阅读 架构说明、贡献指南、安全策略、网络请求与数据流向 和 行为准则。准备公开源代码或平台构建物时,再阅读 开源发布清单 和第三方组件清单;它们列出第三方通知、资源许可、敏感文件检查和验证边界。各平台宿主的构建、测试与安装细节以对应的 platforms/<os>/README.md 为准。制作音效包、音乐包、指令表、特效包、短语表、辅助码表、单词本或符号集,见插件作者指南。
跨平台的本地验证入口是 bash scripts/verify-local.sh:--quick 只跑编译阶段,是合并前的门禁;无参数跑全量,包含 Rust 测试、fmt、clippy、依赖审计、前端 lint 与类型检查、各原生宿主的 ctest 以及整句转换与逐键延迟评测。每个阶段把失败的测试名与 scripts/known-failures.txt 比对,只对不在清单里的名字失败。git config core.hooksPath .githooks 可以把 --quick 挂到 pre-push 上。
cargo test -p msime-client-base -p msime-client-core -p msime-client-providers -p msime-client-services --locked
cargo fmt --all --check
cargo clippy -p msime-client-base -p msime-client-core -p msime-client-providers -p msime-client-services --all-targets --locked -- -D warnings
pnpm install --frozen-lockfile
pnpm --filter @msime/desktop test
pnpm build
桌面构建需要 Tauri 平台依赖。不要直接 pnpm tauri build 或 pnpm tauri dev:Tauri 工程只是原生宿主拉起的公共组件,apps/desktop/scripts/require-platform-build.mjs 会直接报错拒绝,构建入口是各平台的 platforms/<os>;面向用户的安装包由各平台自己的打包链产出——macOS 的 CMake bundle、Windows 的 platforms/windows/installer/msime_setup.iss、Linux 的 CPack(-DMSIME_ENABLE_PACKAGING=ON)、Android 的 platforms/android/build-apk.sh、HarmonyOS 的 hvigorw assembleHap、iOS 的 Xcode 工程。普通浏览器中只显示无法访问本地配置的提示,不模拟保存成功。
桌面设置的应用标识和默认应用数据目录按平台命名:macOS 是 app.msime.macos,Windows 是 app.msime.windows,Linux 是 app.msime.linux。偏好保存在其中的 preferences.json。也可用绝对路径环境变量 MSIME_CLIENT_STATE_DIR 指向隔离开发目录。macOS 原生宿主读取同一份配置并在当前组词结束后应用更新;多个设置窗口同时保存时通过 revision 检测冲突,用户须显式重新读取后决定是否覆盖。
Android 合包构建和设备测试见 Android 宿主。合包只用于开发验证,发布的 APK 是不含 Tauri 的原生包;合包里 Tauri 设置与原生 :ime 服务同包、不同进程,共享私有 files/bootstrap/state,关闭设置窗口不结束输入法进程。iOS 的产品宿主是 platforms/ios 的原生 App,设置界面是 SwiftUI 原生页面,它嵌入原生键盘扩展并通过 App Group 共享状态;App 里没有 WebView,Tauri iOS 工程只在单独构建公共组件时产出,不作为 App 分发或启动。签名与设备安装步骤见 iOS 宿主。
共享设置支持 shuangpin_profile:xiaohe(小鹤)、ziranma(自然码)、shoudao(首道)、microsoft(微软)、smart_abc(智能 ABC),以及 custom(自定义双拼,键位表存在 shuangpin_custom_profile)。缺省按小鹤读取,未知值拒绝;设置页在非双拼方案下禁用此选择但保留已选值。macOS 和 Linux 的设置页可以从内置方案起步编辑自定义键位、导入导出 JSON,表要通过 Engine 的校验才能保存;表不能用时输入法按小鹤运行。方案更改沿用组词结束后替换 Engine 的规则。
Linux 本地构建、隔离 D-Bus / IBus 测试和安装后的首次配置见 Linux 宿主。宿主支持设置文件自动重读,安装后由随装的 msime-linux-setup 备齐词库并准备运行配置;msime-linux-setup --download 按 resources/desktop-dictionary.lock.json 取回缺失词库,图形入口在缺少 runtime-options.json 时会打开同一套首次配置页。
功能对齐以 MSIME-Windows 的完整功能为行为基线:公共业务逐项接入共享层,界面按平台归属接入共享 React 页或该平台的原生设置,Windows 沿用 TSF DLL 与 Server 分进程的结构,但两者之间的协议只服务本仓库同版本构建,不再兼容 MSIME-Windows 的旧配置、共享内存、无版本握手和旧语音管道,Android、iOS、macOS、Linux 与 HarmonyOS 按各自系统能力适配。scripts/test-reference-*.py 把这条基线固化成可复跑的门禁——参考实现的出厂配置键、四个界面的机器可读能力清单、changelog 的每条特性、以及 windows/、server/、ui/src 下的每个源文件,都必须对应到本仓库的实现或一条写明理由的缺席记录。
水杉的输入引擎可以单独嵌进别的输入法:词格整句加神经重排、拼写纠错、按用户选择学习,方案有全拼、双拼、五笔、日文、韩文、粤拼、注音、越南文、藏文和笔画。它是开箱即用的引擎库,不是 Rime 那样靠方案配置驱动的框架。
cargo add msime-engine(crates.io · docs.rs),上手见 crates/engine/README.md 的「快速上手」。msime_engine.h 和 msime-engine.pc;上手见 crates/engine-capi/README.md。引擎代码是 MPL-2.0,可以嵌进闭源或上架 App Store 的应用;词库数据保留各自的许可证,不是 MPL:默认中文词库含 GPL-3.0 的 rime-ice 数据,n-gram 计数是 CC-BY-SA-4.0,按需另选数据。
完整的介绍、各语言的接入示例和常见问题见官网的引擎库页面。
cargo test -p msime-engine --locked
输入引擎是 workspace 里的 crates/engine,与其它 crate 一起构建,不需要额外拉取源码、也不需要 C++ 工具链;SQLite 由 rusqlite 的 bundled 特性编进去。行为基准是从原 C++ Engine 录下的 crates/engine/tests/golden/,录制方法见 tools/engine-golden/README.md。路径由宿主明确提供,字符输入是 engine 支持的 ASCII 动作。engine 与运行时测试使用真实 engine 而非替身,其中本地 Unicode 模式那组用例覆盖裸数字键归 engine 还是归候选选择的判定。
cargo build -p msime-host-api --locked 产出静态库和动态库。头文件为 crates/host-api/include/msime_client.h,C 消费示例为 crates/host-api/native/native_smoke.c。调用链为 C 宿主 → host-api → input-runtime → engine,无 Tauri 运行时依赖。
宿主创建会话后须显式传入焦点状态,将 handled 映射为系统吃键,将 commit 通过系统 API 上屏,将值快照渲染为候选。候选选择携带返回的 generation 和全局 index。全部会话操作在创建线程执行;过期、销毁或错误线程句柄返回错误。每个 UTF-8 JSON 响应必须通过 msime_client_string_free 释放一次。逐键延迟由 crates/input-runtime 的 rerank_latency 示例按帧预算测量,scripts/verify-local.sh 把它作为一个门禁阶段运行。
msime_client_select_edge(session, generation, index, edge) 是 ABI 1 附加接口,适配器与宿主库须成套更新。方向使用 MSIME_FIRST_HAN / MSIME_LAST_HAN;共享层核对候选所属会话、代次和当前页,engine 提取首/尾汉字并在成功后清空整个组合。候选没有汉字时返回未处理并保留组合,不自动选词或追加标点;这类有效调用仍更新视图代次,宿主后续操作必须使用新快照。非法方向和失效身份在状态推进前拒绝。Windows 适配库的配置键路由、无汉字回退与 TSF 回复编码都已接进生产 KeyHandler,对应的 msime-tsf-client-key-router、msime-tsf-character-result 和 msime-tsf-engine-response 等测试在 platforms/windows/tsf 的 ctest 里覆盖这条路径。
resources/desktop-dictionary.lock.json 固定 metasequoiaime/msime-dictionary 已发布 dict-v2.0.41 的来源、长度和 SHA-256。其中 msime-mozc_dictionary_oss_README.txt 与 msime-mozc_LICENSE.txt 是日文词库的许可证全文(前者是 IPAdic 与 ICOT 的条款,后者是 Mozc 的三条款 BSD),msime-scowl_Copyright.txt 是 msime-english.db 里 SCOWL 词表的版权与许可声明,它们的条款都要求随数据一同分发,重新打包时不可省略;详见第三方组件清单。首次下载约 270 MB。词库锁的 source_commit 记录这批词库是本仓库哪次提交用 msime-dict-build 产出的,其中 msime-bigram.bin 与 msime-trigram.bin 是整句词格仲裁的语言模型表。表缺失时 engine 不报错,只是整句路径不加权——候选照出,顺序变差,所以换词库版本时要确认 crates/engine 还读得了新表,并重跑句子转换评测。开发准备命令:
cargo run -p msime-client-core --example install_resources -- target/resources
安装器通过注入的流读取资源,限制长度并校验摘要;全部成功后才发布到内容标识目录。再次使用时检查缓存字节;损坏缓存报错,失败安装不替换旧代。这里只准备不可变发布资源,不激活现有输入法,不迁移用户学习数据。资源按独立文件下载,不整包解压归档。
六个平台(Windows、macOS、Linux、iOS、Android、HarmonyOS)的设置应用提供「词库更新」。默认在设置应用启动或回到前台时每天检查一次官方词库 Release,自动下载与当前引擎格式兼容的版本;也可手动检查、关闭自动更新或恢复上一版。下载文件按 GitHub Release 的 SHA-256 与词库 manifest 交叉校验,完整安装后在下次启动输入法或重新打开键盘时生效。个人词条、删除与权重修改、学习记录由用户日志回放保留;下载失败或新资源损坏时继续使用可用词库。构建锁仍固定随包基线,未安装的可选词库不因自动更新而下载。移动系统暂停设置应用时不会持续后台检查。
msime_engine::host::prepare_options 是工作词库准备与学习回放的权威入口,调用方必须先验证资源并暂停相关会话。以下探针使用临时用户目录和缓存,验证已发布词库中的 nihao 查询、选词提交及首/尾汉字选择:
cargo run -p msime-engine --example query_dictionary -- <上一步返回的资源目录>
新版各平台的整句候选设置、神经模型与 .gram 语法模型的安装和更新方式,见整句候选与模型。Windows 原生设置目前尚未提供完整模型管理入口,说明中列出了已有能力和缺口。
整句神经重排模型另有一份 resources/neural-model.lock.json,把键盘用的小模型和桌面落定时使用的大模型锁在同一发布版本。需要单独准备两份模型时运行:
python3 scripts/fetch_neural_model.py --out target/neural-model
下载只接受 HTTPS,先写入临时文件,再逐个核对锁定的长度和 SHA-256 后改名发布;已有摘要匹配的文件会跳过。发布的安装包都不带桌面模型,用户打开「桌面神经联想」时由设置应用按需下载(资源包 settled-model);本地构建和发行版打包仍可以随包带上它,这时资源打包优先接受历史的 target/settled-model 目录,缺失时自动使用这个 target/neural-model 目录里的桌面模型,随包的那份优先于下载的。键盘模型仍由 desktop-dictionary.lock.json 的词库资源安装器校验并复制进 EngineResources,两个锁都保留作来源记录。
粤拼、注音和笔画的语言词库由 resources/language-dictionaries.lock.json 单独固定,三套词库连同各自的许可证文本是同一个资源包 language-dictionaries。macOS 发布包和 Android 的 full、拼音版发布 APK 只内置打中文所需的核心词库:日文词典那一组(msime-japanese.dat 与两份 Mozc 许可文本)和语言词库都不随包,用户选日文、粤拼、注音或笔画方案时(Android 是在「添加语言」里添加这些语言时;拼音版不提供粤拼、注音和笔画,只会为临时日语下载日文词典)才按锁文件下载到偏好目录的 resource-packs/,下载的文件与随包文件一样按锁定的长度和 SHA-256 校验。Android 的这两个版本还把非英文离线释义(resources/offline-glosses.lock.json,打开离线释义时下载)和本地语音运行库(resources/voice-runtime-android.lock.json,打开「离线识别」时下载)留给按需下载,启动时不自动下载任何资源包;从内置这些文件的旧版升级时,已解压在本机的文件校验通过后直接转成资源包。Windows、Linux、iOS、HarmonyOS、Android 的其他版本和 Tauri 开发合包照旧随包。macOS 发布包还把五笔码表 msime-wubi.db(水杉五笔除外,选五笔方案时下载,资源包 wubi)和本地语音识别的 sherpa-onnx 运行库(选用本地识别时下载,资源包 voice-runtime-macos:上游库用本项目 Developer ID 重签后发布,resources/voice-runtime-macos.lock.json 固定它的 SHA-256;锁文件固定之前仍随包)留给按需下载。下载地址、镜像与隐私说明见 PRIVACY.md。
macOS 原生 IMK bundle 的构建、隔离状态目录与安装见 macOS 宿主。platforms/macos/scripts/install.sh 用 Developer ID 重签并原子替换到 ~/Library/Input Methods,失败回滚;platforms/macos/scripts/check_input_source.swift 核查输入源注册结果。
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
Windows 正式版目前由 msime-windows 构建、签名和发布,签名适用那边的 Code signing policy。本仓库的 Windows 安装包由 release-windows.yml 构建,SignPath 签名尚未启用(要等 SignPath Foundation 把本仓库加进同一个项目),启用前发布的是未签名安装包;启用后的签名范围、角色和流程见本仓库的 Code signing policy。其余平台按各自平台的机制签名,不经过 SignPath。隐私说明见 PRIVACY.md。
源码为 GPL-3.0-only,全文见 LICENSE。例外是脚本插件的 SDK(crates/script-sdk)、模板(docs/script-plugin-template)和脚本插件合集(plugins/script)的代码,用 MIT,全文分别在这三个目录的 LICENSE:SDK 要编进每个插件,作者用它写的插件不必因此变成 GPL。插件包里编进的第三方数据按各自的许可证。
输入引擎 crates/engine(msime-engine)和它依赖的 crates/path-trust(msime-path-trust)是另一个例外,用 MPL-2.0(不附 Exhibit B),全文在这两个目录各自的 LICENSE:其他输入法可以嵌入这个引擎,而它仍能和仓库其余的 GPL 代码组合。引擎里内嵌的几张数据表和改编的第三方代码保留各自的许可证,逐个文件见 crates/engine/README.md;引擎运行时读的词库和模型按各自的许可证分发,不随引擎改变。向这两个目录提交的贡献按「GPL-3.0-only OR MPL-2.0」授权。整个输入法产品仍按 GPL-3.0-only 发布。
上游代码、词库、模型和各平台 SDK 以各自许可证和通知为准,其中 Android 与 iOS 的手写识别使用 Google ML Kit,按其服务条款授权而非开源许可证。完整对照见第三方组件清单。
KeyboardExtensionAbilitymodule.json5type: "inputMethod"libmsimeclient.soentry/src/main/resources/rawfile/settings/index.html